2015-12-23 4 views
1

У меня возникли проблемы с доступом к данным, которые передаются express.js из углового сервиса http.Экспресс Доступ к Угловым Http

Я использую сервис HTTP:

$http.post('/someUrl', data, config).then(successCallback, errorCallback); 

Это то, что я делаю в угловую:

$http.post('/api/topic', {data : topic}).then(successCallback, errorCallback); 

Это то, что я делаю на в курьерским:

app.post('/api/topic', function(req,res){console.log(req.data);}); 

Мы предполагаем, что тема - это объект, полученный из интерфейса углового.

{ 
    username : 'dan', 
    topic : 'I want to learn more', 
    description : 'Where can I learn more about web development', 
    category : 'web development' 
} 

Так что мой вопрос: каким образом бэкэнд-конец использует экспресс-доступ к угловому полю данных HTTP?

+0

если вы отправляете его по почте, то вам необходимо прочитать тело запроса – SoluableNonagon

+0

если вы используете экспресс-4, вы необходимо установить body-parser – SoluableNonagon

ответ

3

для запросов POST вам нужно тело парсер (получить запросы по-прежнему получать доступ к данным)

var app = require('express')(); 
var bodyParser = require('body-parser'); 
var multer = require('multer'); // v1.0.5 

app.use(bodyParser.json()); // for parsing application/json 
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded 

app.post('/api/topic', function (req, res, next) { 
    console.log(req.body); 
    res.json(req.body); 
}); 
+0

Это предполагает ExpressJS 4 – SoluableNonagon

+0

Да У меня есть синтаксический анализатор, но req.body возвращает пустой объект. – Nello

+0

oh nevermind Я не разбирался в json. Я пропустил app.use (bodyParser.json()); – Nello