【发布时间】:2012-10-07 06:43:15
【问题描述】:
我正在尝试使用backbone.js 和express.js 构建一个应用程序。我有一个问题要将值从快递返回到主干。我在一个简单的 Curl 请求时遇到了同样的问题(我可以在服务器端显示 req.params 但在客户端无法获取它,即使在其上使用 JSON.stringify() 也是如此)。
我在 php 中用一个简单的 echo json_ecode() 做了同样的代码,效果很好……
下面是服务端简单测试的代码:
var express = require("express");
var app = express();
app.get('/user/:id/:pass', function(req, res){
res.status(200);
res.send({"id": "1"});
});
在客户端,我没有收到任何成功或错误回调...
var U1 = new User();
U1.fetch({
success: function(data) {
console.log('User fetched.');
},
error: function(model, error) {
console.log('user Error: '+error);
}
});
我在 express.js 上的回答有什么问题?
谢谢!
【问题讨论】:
-
我不太明白这个问题。骨干网如何向 /user/joe/123 发送请求?快递部分对我来说看起来不错。假设您实际上是在请求该资源。
-
使用上面的fetch方法;它向“localhost:3000/user/:a/:b”发起 GET 请求。在客户端使用相同的代码,如果我用 php 管理服务器端,它可以工作。
-
在您的代码上运行“curl --verbose --raw --url localhost:3000/user/1/2”确实会返回一个有效的 JSON 对象。你在上面运行 curl 得到了什么?
-
嗨,结果如下: curl --verbose --raw --url localhost:3000/user/1/2 * 即将 connect() 到 localhost 端口 3000 (#0) * 正在尝试127.0.0.1... 已连接 > GET /user/1/2 HTTP/1.1 > 用户代理:curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2 .3.4 libidn/1.23 librtmp/2.3 > Host: localhost:3000 > Accept: / >
-
有趣...如果我更改“localhost:3000/user”的路由(不带参数)并且我用 express 捕获它,我会转到错误主干回调...
标签: javascript rest backbone.js express