web-dev-qa-db-fra.com

express.json vs bodyParser.json

J'écris une application relativement nouvelle et je me demandais laquelle utiliser:

express.json()

ou

bodyParser.json()

Puis-je supposer qu'ils font la même chose.

J'aimerais simplement utiliser express.json() car il est déjà intégré.

54
user7742676

Les versions précédentes d'Express comportaient souvent de nombreux middleware. bodyParser était l'un des middlewares qui l'ont créé. Lors de la sortie d'Express 4.0, ils ont décidé de supprimer le middleware fourni d'Express et d'en faire des packages séparés. La syntaxe est ensuite passée de app.use(express.json()) à app.use(bodyParser.json()) après l'installation du module bodyParser.

bodyParser a été rajouté à Express dans la version 4.16.0, car les utilisateurs souhaitaient le regrouper avec Express comme auparavant. Cela signifie que vous n’êtes plus obligé d’utiliser bodyParser.json() si vous utilisez la dernière version. Vous pouvez utiliser express.json() à la place.

L'historique de publication est pour 4.16.0 est ici pour ceux qui sont intéressés, et la demande d'extraction ici .

132
MikaS

OUI! Correct

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;
11
Oleg Mikhailenko