Ember Data的节点js服务器

时间:2013-06-28 15:36:45

标签: node.js ember.js ember-data

我有使用LSAdapter的示例“todo”ember应用程序;现在我正在尝试使用RESTAdapter并从节点js获取json数据;

在Ember应用程序中,我已经完成了:

Todos.Store = DS.Store.extend({
  revision: 13,
  url: "http://127.0.0.1"
});



Todos.Todo = DS.Model.extend({
    title: DS.attr('string'),
    isCompleted: DS.attr('boolean')
});

这是主路线处理程序:

Todos.TodosIndexRoute = Ember.Route.extend({
    model: function() {
        return Todos.Todo.find();
    }
});

在ember数据文档中,他们说这应该发送一个http请求GET到url / todos,所以在这种情况下:

http://127.0.0.1/todos

所以我用节点js制作了一个服务器:

dispatcher.onGet("/todos", function(req, res) {
    bind.toFile('tmpl/todos.tpl', {

            id: "1",
            title: 'Just a try',
            is_completed: "false"

    }, function(data) {
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.end(data);
    });
});

它使用httpdispatcher并绑定来自npm的模块,因为如果我在浏览器中输入:

//url in the browser
127.0.0.1/todos

我得到:

{ "todo": { "id": 1, "title": Just a try, "is_completed": false } }

但是如果我在浏览器中执行应用程序(URL:file:/// D:/Works/Web%20Resources/EMBER%20MVC%20FRAMEWORK/Prova_App/index.html),那么“只是试一试”就不是了。装; 使用chrome检查,在控制台选项卡中,我可以读取错误“无法加载资源文件:/// D:/ todos”

有人可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

为什么使用文件:///?您需要通过服务器请求页面。

当ember查找todos时,它会检查域的根目录。通过[地址] /待办事项的网址请求时。当您使用file:///请求变为file:///D:/todos时。