2014-10-13 4 views
0

Я пишу небольшое приложение AngularJS, которое общается с контентом ExpressJS для JSON. Мой server.js файл выглядит следующим образом:Экспресс JS не отправляет JSON в ответ на запрос

var express = require('express'), 
    app = express(); 

//Express 4 
app.use(express.static(__dirname, '/')); 

app.get('/questions', function(req, res) { 
    res.json(questions); 
}); 

app.post('/new_question', function(req, res){ 
    res.json(req.body); 
    //questions.unshift(req.body); 
}); 

app.listen(8080); 

Когда я: curl -H "Content-Type: application/json" -d '{text: "text", votes: 0 }' localhost:8080/new_question я ничего не получаю обратно. Что мне здесь не хватает? Я чувствую, что это должно быть что-то исключительно глупое.

+2

Вам понадобится промежуточное программное обеспечение 'body-parser'. Если вы создаете экспресс-проект, используя генератор CLI 'express', он будет добавлен для вас. –

+0

Можете ли вы написать ответ, показывающий, как я это сделаю? Я просмотрел документы, и я действительно попробовал это, прежде чем публиковать этот вопрос. Я, очевидно, что-то испортил, когда сделал это. Это мое первое приложение node/express. –

ответ

1

Ваш POST понадобится промежуточное программное обеспечение bodyparser, указанное в комментариях.

Однако, я не вижу, что не так в вашем GET. Может быть вопросы недействительный json? попробуйте просто

res.send(questions,200); 

И посмотрите, что произойдет.

Кроме того, используйте регистратор, чтобы получить дополнительную информацию о вашей проблеме: какой статус запроса вы получаете? и т.д ...

app.use(express.logger()); 

поместить его после вашего статического вызова, если вы не хотите войти статические запросы контента.