【问题标题】:How do I set a route for a json response in express?如何在 express 中设置 json 响应的路由?
【发布时间】:2015-07-05 00:28:05
【问题描述】:

我正在尝试关注this Angular tutorial 来处理带有承诺的表单提交。我在节点上运行我的服务器,我正在使用 express 来处理路由。当表单被提交并且我到达该行时

var $promise = $http.jsonp('response.json', config)

我的应用程序通过尝试查找 response.json 的路由进行响应,然后重定向到 404 页面。然后我得到一个未捕获的语法错误,因为它试图将我的翡翠模板解析为 response.json。

解决此问题的最佳方法是为 json 响应定义路由吗?还是我还缺少其他东西?

【问题讨论】:

  • 您需要在服务器上为response.json 指定一个特定路由,这样您就可以编写代码来处理发送到服务器的 JSON。这就是您将请求发送到的地方,因此服务器需要一个处理程序。
  • 谢谢,这很有帮助。但是我很难找到一个示例来查看处理 json 响应的快速路由。你能建议我在哪里可以找到吗?

标签: javascript json angularjs node.js express


【解决方案1】:

将 JSON 数据发送到您的服务器只是特定路径上的正常请求,数据以 JSON 形式发送。如果请求是 GET,则数据是 URL 编码的。如果请求是 POST,则数据会以编码方式发送到正文中。无论哪种情况,body-parser 模块都会为您解析它。

下面是一个简单的示例,用于向"/response.json" 发送请求:

var express = require("express");
var app = express();
var bodyParser = require('body-parser');

app.get('/response.json', bodyParser.json(), function (req, res) {
  if (!req.body) return res.sendStatus(400);
  // req.body is the parsed JSON that was sent with this request
  // process it here
});

app.listen(80);

有几种不同的方法可以使用 body-parser 模块。您可以在此处查看其他几个示例:How do I consume the JSON POST data in an Express application


而且,客户端代码是:

var $promise = $http.jsonp('/response.json', config)

【讨论】:

    猜你喜欢
    • 2020-04-09
    • 2020-06-17
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2014-04-21
    • 2017-01-03
    相关资源
    最近更新 更多