Tôi đang viết một ứng dụng tương đối mới và đang tự hỏi mình nên sử dụng ứng dụng nào:
express.json()
hoặc là
bodyParser.json()
Tôi có thể cho rằng họ làm điều tương tự.
Tôi chỉ muốn sử dụng express.json()
vì nó đã được tích hợp sẵn.
Tôi đang viết một ứng dụng tương đối mới và đang tự hỏi mình nên sử dụng ứng dụng nào:
express.json()
hoặc là
bodyParser.json()
Tôi có thể cho rằng họ làm điều tương tự.
Tôi chỉ muốn sử dụng express.json()
vì nó đã được tích hợp sẵn.
Câu trả lời:
Các phiên bản trước của Express từng có rất nhiều phần mềm trung gian đi kèm với nó. bodyParser là một trong những phần mềm trung gian đến với nó. Khi Express 4.0 được phát hành, họ quyết định loại bỏ phần mềm trung gian đi kèm khỏi Express và thay thế chúng thành các gói riêng biệt. Cú pháp sau đó đã thay đổi từ app.use(express.json())
để app.use(bodyParser.json())
sau khi cài đặt các module bodyParser.
bodyParser đã được thêm trở lại Express trong bản phát hành 4.16.0, vì mọi người muốn nó được đóng gói với Express như trước đây. Điều đó có nghĩa là bạn không phải sử dụng bodyParser.json()
nữa nếu bạn đang sử dụng phiên bản mới nhất. Bạn có thể sử dụng express.json()
thay thế.
Lịch sử phát hành cho 4.16.0 là ở đây cho những ai quan tâm và yêu cầu kéo ở đây .
app.use(express.urlencoded({ extended: true }));
sau đó?
ĐÚNG! Chính xác
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;
Có cả hai đều giống nhau.
nếu bạn đi vào tệp node_module / express / lib / express.js
bạn có thể thấy bên dưới phần phụ thuộc mô-đun, mô-đun phân tích cú pháp nội dung đã được nhập
/**
* Module dependencies.
*/
var bodyParser = require('body-parser')
//other modules
các đối tượng và phương thức bên trong mô-đun bodyparser có thể truy cập được khi chúng được xuất bằng mô-đun đối tượng đặc biệt.
exports = module.exports = createApplication;
exports.json = bodyParser.json
điều này có thể truy cập được từ đối tượng express chỉ bằng cách gọi
express.json()