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?

Peter O.
  • 32,158
  • 14
  • 82
  • 96
Fu Nian Wong
  • 1,047
  • 1
  • 6
  • 14

3 Answers3

215

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
Moath Thawahreh
  • 2,519
  • 2
  • 14
  • 19
25

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 }));
Gaurav Sharma
  • 261
  • 2
  • 4
25

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);
});
Abraham
  • 12,140
  • 4
  • 56
  • 92
  • 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. – Sixteen Dec 08 '21 at 16:55
  • 3
    @Sixteen 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()` – Abraham Dec 08 '21 at 20:29