BodyParser is deprecated
Asked Answered
G

3

94

enter image description here

As the image shown, BodyParser now is deprecated, how to correct the bodyParser syntax or statement to remove the line-through?

Gangway answered 8/3, 2021 at 6:12 Comment(3)
What version of body-parser and nodejs are you using?Earing
I'm using 1.19.0 body-parser and 14.15.0 Node.jsGangway
Please don't send image, prefer code : meta.#286051Porter
O
219

If you are using Express 4.16+ you don't have to import body-parser anymore. You can do it just like this:

app.use(express.urlencoded({extended: true}));
app.use(express.json()) // To parse the incoming requests with JSON payloads
Olivette answered 8/3, 2021 at 23:53 Comment(1)
You are welcome!. And to use JSON you can just go with: app.use(express.json())Olivette
E
27

Don't use body-parser

body parsing has become builtin with express So, simply use

app.use(express.json()) //For JSON requests
app.use(express.urlencoded({extended: true}));

from directly express

You can uninstall body-parser using npm uninstall body-parser


Then you can simply get the POST content from req.body

app.post("/yourpath", (req, res)=>{

    var postData = req.body;

    //Or like this, for string JSON body

    var postData = JSON.parse(req.body);
});
Endodontics answered 27/6, 2021 at 13:38 Comment(2)
is JSON.parse(req.body) really needed as long as you used app.use(express.json()) ? I tried to use JSON object properties without JSON.parse() and it still works.Rafaelrafaela
@Rafaelrafaela Yes it works directly as long as the request has a JSON format and you won't need to use JSON.parse(). But for requests that send JSON in a string form, you will have to use JSON.parse() to get a usable JSON object. One example could be a frontend code that uses fetch to send request to server and sends object as string using JSON.stringify()Endodontics
H
26

Same issue occur to my projects also . Now in latest express we don't need to import body-parse, we can just use express as follow.

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

or if you limit size

app.use(express.urlencoded({ limit: "50mb", parameterLimit: 500000000 }));
Hairpin answered 20/3, 2021 at 6:50 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.