I've created a very basic express js application. After setting routes and other things I did app.use('/api/', require('./api/api.js'));
api.js looks something like this:
var express = require('express');
var router = express.Router();
router.post('/', function(req, res){
res.end(req.body);
});
module.exports = router;
I'm using Postman chrome extension to post to this route. The response is empty {}
.
The question is: as long as I have in my app.js
body-parser
middleware set do I need to set it again in api.js
? If not why I have an empty response ?
In app.js
body-parser is set like this:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
Try this
app.js
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
var api = require('./api');
app.use('/api', api);
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
api.js
var express = require('express');
var router = express.Router();
router.post('/', function (req, res) {
res.send((req.body);
});
module.exports = router
Then, in your PostMan request, something like: