Я работаю над API с NodeJS и Express (и больше таких вещей, как mongo, сокеты и т.д.), но я застрял на очень простом шаге, я верю, я просто пытаюсь получить информацию из POST req, но я получаю сообщение об ошибке при попытке доступа к req.body
Вот что у меня есть:
var express = require('express'),
http = require('http'),
path = require('path'),
fs = require('fs'),
io = require('socket.io');
dynroute = require('dynroute');
var app = express();
app.set('port', process.env.PORT || 3999);
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(app.router);
app.use(express.bodyParser());
app.post('/user', function(req, res) {
console.log(JSON.stringify(req.body));
res.send(req.body.self);
});
http.createServer(app).listen(app.get('port'), function ()
{
console.log('App Server is now running at:' + app.get('port'));
});
На console.log(JSON.stringify(req.body)); я получим undefined, а на res.send(req.body.self); получаем TypeError: Cannot read property 'self' of undefined
Я искал этот тип ошибок, и обычно проблема заключается в том, что люди не включают в себя app.use(express.bodyParser()); промежуточное программное обеспечение, я также пытался использовать app.use(express.urlencoded()); и app.use(express.json());, также не работал.
Если я делаю a console.log(req), я могу видеть весь объект, но я не вижу body или любого содержимого, которое я передаю при выполнении запроса POST от клиента (я передаю его как JSON).
* Я знаю, что мог бы использовать restify или sails.js для создания API в Node, но я хочу делать все самостоятельно, поэтому я могу извлечь уроки из опыта.
Спасибо
EDIT:
Мне пришлось установить промежуточное ПО bodyparser перед промежуточным программным обеспечением app.router, которое исправит его!