Kousha
Kousha

Reputation: 36299

ExpressJS cannot get POST

The relevant part of my app.js is as follows

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

var app = express();

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

var routes = require('./config/routes);
app.use('/', routes);

My route file is:

var express = require('express');
var router = express.Router();
var upgradesController = require('../../app/controllers/upgrades.server.controller');

// This should receive POST requests
router.post('/api/upgrades/device', upgradesController.create);

module.exports = router;

And finally my controller is

exports.create = function(req, res) {
    res.send(req.body);
}

But this sends nothing. It's always an empty JSON value. I'm using PostMan for testing:

enter image description here What is happening?

Upvotes: 0

Views: 1099

Answers (1)

Yuri Zarubin
Yuri Zarubin

Reputation: 11677

You're sending form-data, switch to x-www-form-urlencoded instead. You can also send "raw", and input valid JSON.

Upvotes: 2

Related Questions