【问题标题】:trying to fetch datas from express.js using backbone.js尝试使用骨干网从 express.js 中获取数据
【发布时间】: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


【解决方案1】:

好的,我通过在我的快速路线中添加 res.header("Access-Control-Allow-Origin", "*"); 找到了解决方案。

【讨论】:

    【解决方案2】:

    只要 User 模型将其 url 设置为相同的 /user/login/password 那么它应该可以工作,请参阅:http://backbonejs.org/#Model-url 你是否已经在 User 模型上创建了 url 方法?

    我在backbone.js 上发布了几篇文章并表达...http://www.pixelhandler.com/blog/2012/02/29/backbone-js-models-views-collections-to-present-api-data/ 使用来自快递应用程序的API 数据的主干示例:http://pixelhandler.com/blog/2012/02/09/develop-a-restful-api-using-node-js-with-express-and-mongoose/

    【讨论】:

    • 嗨,是的,这是我的用户模型的初始化方法:initialize : function() { console.log('User Constructor...'); this.url = "http://localhost:3000/user/"+this.get('a)+'/'+this.get('b'); } 你的文章看起来很有趣!我会努力的!
    猜你喜欢
    • 2016-10-29
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多