express ném lỗi vì `body-Parser không dùng nữa được xác định mở rộng`


127

Trong ứng dụng nút của tôi, tôi đang sử dụng express. Tất cả đều hoạt động tốt, nhưng tôi nhận được lỗi trong cmd. Tôi sử dụng tất cả các mô-đun được cập nhật ...

mã của tôi :

var express = require('express');
var bodyParser = require('body-parser');
var jade = require('jade');
var app = express();
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));


app.use(bodyParser.json()); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded()); // to support URL-encoded bodies


app.get('/',function(req,res){
    res.render('index.jade');
});

app.get('/login',function(req,res){
    res.render('index.jade');
});

app.post('/login',function(req,res){
    console.log(req.body);
});

app.get('/signup',function(req,res){
    res.render('signup.jade');
});

var env = process.env.PORT || 3000;


app.listen(env, function(req, res){
    console.log('i am working!');
});

Lỗi:

D:\myLogin>node app
body-parser deprecated undefined extended: provide extended option app.js:11:20 //why i am getting this?
i am working!
{ username: 'jbarif@gmail.com', password: 'pass' } // i am getting response

Có thể giúp tôi hiểu vấn đề này xin vui lòng?


@RamprasathSelvam - Vâng, chính là !!
3gwebtrain

@RamprasathSelvam - có thể có gì đó không đúng với mã, phiên bản mô-đun hoặc tích hợp của bạn, vui lòng kiểm tra
3gwebtrain

Nơi nào chúng ta bỏ phiếu cho thông báo lỗi tồi tệ nhất bao giờ hết? Đặc biệt là xem xét điều này rất có thể xảy ra, thông điệp chỉ trông giống như một túi các từ ngẫu nhiên.
spechter

Câu trả lời:


263

Bạn cần phải rõ ràng thiết lập extendedcho bodyParser.urlencoded()từ giá trị mặc định sẽ thay đổi trong phiên bản lớn tiếp theo của body-parser. Thí dụ:

app.use(bodyParser.urlencoded({ extended: true }));

Kể từ express4.16.0, bạn cũng có thể thực hiện:

app.use(express.urlencoded({ extended: true }))

11
Cái này làm gì
Samarth Agarwal

5
@SamarthAgarwal Theo readme , nó sử dụng qsmô-đun để phân tích phần thân cho phép một mảng giống như cú pháp được phân tích cú pháp như test[foo][bar]=baz(trở thành {'test': {'foo': {'bar': 'baz'}}})
Bailey Parker

35

Chú ý: Với express version => 4.16.0các body-parsermiddleware đã được bổ sung trở lại dưới các phương pháp express.urlencoded()express.json()

Mà có thể được sử dụng như:

app.use(express.urlencoded({extended: true})); 
app.use(express.json());   

14

Lỗi nói rằng bạn cần cung cấp tùy chọn mở rộng cho trình phân tích cú pháp cơ thể như vậy:

app.use(bodyParser.urlencoded({ extended: false }))


0

Nếu bạn ở đây, sau tháng 5 năm 2020 có nghĩa là bạn chắc chắn đang sử dụng nút của phiên bản v13.12.0 .. Vì vậy, app.use (express.urlencoding ({Extended: true}))

Điều này chắc chắn Gonna làm việc cho bạn .... # hòa bình


-1

Đặt giới hạn 50 MB để tránh lỗi xử lý dữ liệu., Trong giới hạn urlencode, 50mb là để giúp bạn vượt qua url ném hình ảnhData

  app.use(bodyParser.json({
        limit : '50mb'    ///////// LIMIT for JSON
      }));

    app.use(bodyParser.urlencoded({
        limit : '50mb', ///////// LIMIT for URL ENCODE (image data)
        extended : true
      }));
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.