Reputation: 2669
The server file is
'use strict';
var express = require('express');
var compression = require('compression');
var configDB = require('./config/database');
var mongoose = require("mongoose");
var bodyParser = require('body-parser');
var logger = require('morgan');
var path = require('path');
var app = express();
var deliveries = require('./routes/deliveries');
var mongoString;
if (process.env.MONGOLAB_URI) {
console.log('Now in HEROKU');
mongoString = process.env.MONGOLAB_URI;
} else {
mongoString = configDB.dev;
console.log('In dev mongo', mongoString);
}
mongoose.connect(mongoString);
mongoose.connection;
app.set('views', path.join(__dirname, '/views'));
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/api/deliveries', deliveries);
var server = app.listen(3000, function() {
var host = 'localhost';
var port = server.address().port;
console.log('Listening at http://%s:%s', host, port);
});
module.exports = app;
I don't know what is wrong with the server setup. Making a post and put request has been a pain. I have been battling with this for the past 1 hour. Any help to what I am doing wrong.
The route file is
router.put('/cancel/:id', function(req, res) {
deliveries.cancel(req, res);
});
deliveriesControllerActions.cancelDelivery = function(req, res) {
console.log(req.headers['content-type']);
if (!(util.isEmpty(req.query))) {
req.body = req.query;
}
var deliveryid = req.params.deliveryid;
var userid = req.body.userid;
var cancelStatus = {
status: true,
timestamp: Date.now()
};
if (!util.verifyInputFields(userid, deliveryid)) {
util.sendErrResponse(res, 404, 'userid is empty');
} else {
Delivery.findById(deliveryid)
.exec(function(err, deliveryObject) {
if (deliveryObject) {
if (deliveryObject.cancelled_by_sender.status || deliveryObject.cancelled_by_admin.status || deliveryObject.cancelled_by_receiver.status) {
saveUpdatedDelivery(res, userid, deliveryObject);
} else {
deliveryObject.status = deliveryRequestCancelledStatus;
deliveryObject.cancelled_by_admin = cancelStatus;
saveUpdatedDelivery(res, userid, deliveryObject);
}
} else if (err) {
util.sendErrResponse(res, 404, err);
}
});
}
}
Upvotes: 1
Views: 2773
Reputation: 106736
The problem is that you're not sending the appropriate type of data to the server. You're submitting something other than application/json
or application/x-www-form-urlencoded
(text/plain
evidently). Either the data itself (and Content-Type
) is not correct, or the Content-Type
header needs to be set appropriately.
Upvotes: 2