express.json vs bodyParser.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.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 setupapp.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 handlerapp.use(function(req, res, next) { next(createError(404));});// error handlerapp.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()