Saya menggunakan express 4.0 dan saya sadar bahwa body parser telah dikeluarkan dari inti express, saya menggunakan pengganti yang disarankan, namun saya mendapatkan
body-parser deprecated bodyParser: use individual json/urlencoded middlewares server.js:15:12
body-parser deprecated urlencoded: explicitly specify "extended: true" for extended parsing node_modules/body-parser/index.js:74:29
Di mana saya menemukan ini middlewares? atau haruskah saya tidak mendapatkan kesalahan ini?
var express = require('express');
var server = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var passport = require('./config/passport');
var routes = require('./routes');
mongoose.connect('mongodb://localhost/myapp', function(err) {
if(err) throw err;
});
server.set('view engine', 'jade');
server.set('views', __dirname + '/views');
server.use(bodyParser());
server.use(passport.initialize());
// Application Level Routes
routes(server, passport);
server.use(express.static(__dirname + '/public'));
server.listen(3000);
sumber
extended
harus dilakukancurl --data "user[email]=foo&user[password]=bar" localhost:3000/login
akan diterima oleh server direq.body
sebagai{ user[email]: "foo", ...}
sedangkanreq.body
akan{user: {email: "foo", ... }}
denganextended: true
.Ingin nol peringatan ? Gunakan seperti ini:
Penjelasan : Nilai default
extended
opsi telah usang, artinya Anda harus secara eksplisit memberikan nilai true atau false.sumber
app.use(bodyParser.json()).use(bodyParser.urlencoded({ extended: true }));
Di versi express yang lebih lama, kami harus menggunakan:
karena body-parser adalah middleware antara node dan express. Sekarang kita harus menggunakannya seperti:
sumber
Jika Anda menggunakan express>
4.16
, Anda dapat menggunakanexpress.json()
danexpress.urlencoded()
Source Express 4.16.0 - Tanggal rilis: 2017-09-28
Dengan ini,
menjadi,
sumber
Ketika
extended
disetel ke true, tubuh yang dikempiskan (dikompres) akan meningkat; ketikaextended
disetel ke false, tubuh yang kempes ditolak.sumber
Apa pendapat Anda untuk menggunakan generator kilat yang akan menghasilkan proyek kerangka untuk memulai,
without deprecated messages
muncul di log Andajalankan perintah ini
Sekarang, buat aplikasi pemula Express.js baru dengan mengetikkan perintah ini di
your Node projects folder
.Perintah itu memberitahu express untuk membuat aplikasi Node.js baru dengan nama
node-express-app
.lalu
Go to the newly created project directory
,install npm packages
danstart the app
menggunakan perintahsumber
Saya menemukan itu sambil menambahkan
membantu, kadang-kadang masalah pertanyaan Anda yang menentukan bagaimana express menanganinya.
Misalnya, bisa jadi parameter Anda diteruskan di URL daripada di badan
Dalam kasus seperti itu, Anda perlu menangkap parameter body dan url dan menggunakan mana yang tersedia (dengan preferensi untuk parameter body dalam kasus di bawah ini)
sumber
app.use(bodyParser.urlencoded({extended: true}));
Saya memiliki masalah yang sama tetapi ini bekerja untuk saya. Anda dapat mencoba bagian yang diperluas ini.
sumber