query - Express.json vs bodyParser.json
package json express (2)
Estoy escribiendo una aplicación relativamente nueva y me preguntaba cuál debería usar:
express.json()
o
bodyParser.json()
¿Puedo asumir que hacen lo mismo?
Me gustaría usar express.json()
ya que está incorporado.
¡SÍ! Correcto
var createError = require(''http-errors'');
var express = require(''express'');
var path = require(''path'');
var cookieParser = require(''cookie-parser'');
var logger = require(''morgan'');
var indexRouter = require(''./routes/index'');
var usersRouter = require(''./routes/users'');
var app = express();
// view engine setup
app.set(''views'', path.join(__dirname, ''views''));
app.set(''view engine'', ''pug'');
app.use(logger(''dev''));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, ''public'')));
app.use(''/'', indexRouter);
app.use(''/users'', usersRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get(''env'') === ''development'' ? err : {};
// render the error page
res.status(err.status || 500);
res.render(''error'');
});
module.exports = app;
Las versiones anteriores de Express solían tener un montón de middleware incluido. bodyParser fue uno de los middlewares que lo vinieron. Cuando se lanzó Express 4.0, decidieron eliminar el middleware incluido de Express y, en su lugar, convertirlos en paquetes separados. La sintaxis luego cambió de app.use(express.json())
a app.use(bodyParser.json())
después de instalar el módulo bodyParser.
bodyParser se agregó de nuevo a Express en la versión 4.16.0, porque la gente lo quería con Express como antes. Eso significa que ya no tiene que usar bodyParser.json()
si está en la última versión. Puedes usar express.json()
lugar.
El historial de versiones de la versión 4.16.0 está here para aquellos que estén interesados, y la solicitud de extracción here .