10

Question I'm trying build a Node.js API, when write my server.js file, my code looks like this:

var express = require('express');
var express = require('body-parser');

var app = express();
app.use(bodyParser.json());

app.get('/api/posts', function(req,res) {
res.json([
    {
        username: 'oscar',
        body: 'hello'
    }

])
})

app.listen(3000, function() {
console.log('Server Listening on', 3000)
})

However, in the command prompt I am getting this error:

body-parser deprecated bodyParser: use individual json.urlencoded
middlewares server.js:4:11
body-parser deprecated undefined extended: provide extended option
node_modules\body-parser\index.js:85:29

I tried changing this to :

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

and

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

like other posts suggest, but it still gives the same error. Not sure what to do now! Please help.

Thanks!

Richard WU
  • 371
  • 2
  • 3
  • 8

5 Answers5

13
var app = express();

// configure body-parser

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
Stewartside
  • 18,424
  • 12
  • 56
  • 75
HDK
  • 808
  • 1
  • 8
  • 13
5

I had similar deprecated warning. Here's my original code:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded());

Adding {extended: true} fixed the warning for me. Here's changed code:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
edufinn
  • 2,121
  • 1
  • 19
  • 19
2

Unless you have a typo, change:

var express = require('body-parser');

var app = express();
app.use(bodyParser.json());

to:

var bodyParser   = require('body-parser');
var app = express();
app.use(bodyParser());

Do have a look at what the request and response objects do here

Community
  • 1
  • 1
sandeep s
  • 365
  • 2
  • 8
2

You don't actually need the line app.use(bodyParser.urlencoded({extended: true}));

I've got it to work with the following code:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());

As log as you have app.user(bodyParser.json()); you shouldn't get the error.

breaktop
  • 1,330
  • 4
  • 20
  • 38
0

You don't need body-parser module any more with current express.js versions (≥ 4.16).

Instead, use the json parser already included in express:

app.use(express.json())

Source: https://expressjs.com/en/changelog/4x.html#4.16.0

JSchirrmacher
  • 2,944
  • 2
  • 17
  • 26