Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

express.json vs bodyParser.json

Tags:

json

express

People also ask

What is difference between bodyParser JSON and Express JSON?

Earlier versions of Express used to have a lot of middleware bundled with it. bodyParser was one of the middleware that came with it. When Express 4.0 was released they decided to remove the bundled middleware from Express and make them separate packages instead. The syntax then changed from app.

Is bodyParser part of Express?

body-parser doesn't have to be installed as a separate package because it is a dependency of express version 4.16. 0+. body-parser isn't a dependency between version 4.0.

What is the replacement for bodyParser?

node. js - Non-deprecated alternative to body-parser in Express.

Is bodyParser deprecated 2021?

body parser package is deprecated. If you are using latest version of express you don't have to install body-parser package.


Earlier versions of Express used to have a lot of middleware bundled with it. bodyParser was one of the middleware that came with it. When Express 4.0 was released they decided to remove the bundled middleware from Express and make them separate packages instead. The syntax then changed from app.use(express.json()) to app.use(bodyParser.json()) after installing the bodyParser module.

bodyParser was added back to Express in release 4.16.0, because people wanted it bundled with Express like before. That means you don't have to use bodyParser.json() anymore if you are on the latest release. You can use express.json() instead.

The release history for 4.16.0 is here for those who are interested, and the pull request is here.


YES! 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;

Yes both are same .

if you go into the file node_module/express/lib/express.js

you can see under module dependencies body parser module is already imported

/**
 * Module dependencies.
 */

var bodyParser = require('body-parser')
//other modules

the objects and methods inside bodyparser module are accessible as they are exported using the special object module.exports

exports = module.exports = createApplication;
exports.json = bodyParser.json

this is accessible from express object just by calling

express.json()

Yes!! you can use both of them. However, since express.json() is now already built into express, it is wiser to use express.json() than the bodyParser.json().