답변:
이전 버전의 Express에는 많은 미들웨어가 번들로 포함되어있었습니다. bodyParser는 그것을 가져온 미들웨어 중 하나였습니다. Express 4.0이 출시되었을 때 그들은 번들로 제공되는 미들웨어를 Express에서 제거하고 대신 별도의 패키지로 만들기로 결정했습니다. 구문은 다음 변경 app.use(express.json())
에 app.use(bodyParser.json())
bodyParser 모듈을 설치 한 후.
bodyParser는 사람들이 이전과 같이 Express와 번들로 제공되기를 원했기 때문에 릴리스 4.16.0에서 Express에 다시 추가되었습니다. 즉 bodyParser.json()
, 최신 릴리스 를 사용하는 경우 더 이상 사용할 필요가 없습니다 . express.json()
대신 사용할 수 있습니다 .
릴리스 내역은 4.16.0에 대한 것이며 여기 에 관심이있는 사용자를위한 것이며 풀 요청은 여기에 있습니다 .
app.use(express.urlencoded({ extended: true }));
그러면 우리도 할 수 있습니까 ?
예! 옳은
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;
네, 둘 다 동일합니다.
node_module / express / lib / express.js 파일로 이동하면
모듈 종속성 본문 파서 모듈이 이미 가져 왔습니다.
/**
* Module dependencies.
*/
var bodyParser = require('body-parser')
//other modules
bodyparser 모듈 내부의 개체와 메서드는 특수 개체 모듈을 사용하여 내보낼 때 액세스 할 수 있습니다.
exports = module.exports = createApplication;
exports.json = bodyParser.json
이것은 단지 호출하여 표현 객체에서 액세스 할 수 있습니다.
express.json()