【问题标题】:Express JS not sending JSON in response to post requestExpress JS 不发送 JSON 以响应发布请求
【发布时间】:2014-12-08 15:20:39
【问题描述】:

我正在编写一个小 AngularJS 应用程序,它与 JSON 的 ExpressJS 后端进行通信。我的 server.js 文件如下所示:

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 我什么也得不到。我在这里想念什么?我觉得它一定是非常愚蠢的。

【问题讨论】:

  • 您需要body-parser 中间件。如果您使用 express CLI 生成器生成 Express 项目,它会为您添加。
  • 你能写一个答案来说明我会怎么做吗?我查看了文档,在发布这个问题之前我实际上已经尝试过了。当我这样做时,我显然搞砸了。这是我的第一个 node/express 应用程序。

标签: javascript json node.js angularjs express


【解决方案1】:

您的 POST 将需要 cmets 中指出的 bodyparser 中间件。

但是,我看不出您的 GET 有什么问题。也许 questions 不是有效的 json?试试吧

res.send(questions,200);

看看会发生什么。

另外,使用记录器获取有关您的问题的更多信息:您获得了哪种请求状态?等等……

app.use(express.logger());

如果您不想记录静态内容请求,请将其放在 static 调用之后。

【讨论】:

    猜你喜欢
    • 2020-06-09
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2017-12-21
    • 2016-06-19
    • 1970-01-01
    相关资源
    最近更新 更多