Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
主干RESTful积垢404_Rest_Backbone.js_Crud - Fatal编程技术网

主干RESTful积垢404

主干RESTful积垢404,rest,backbone.js,crud,Rest,Backbone.js,Crud,因此,我试图通过使用将CRUD实现到我的主干应用程序中。我遇到的一个问题是,尽管我目前正在使用相同的代码用于带有express/mongoose/path的NodeJS服务器,但对于所有CRUD操作,我得到了404。这是我当前在本地主机上的文件夹结构 / /myApplication/ (working dir) /myApplication/js (contains all js files from Backbone app) /myApplication/mongoServer.js (t

因此,我试图通过使用将CRUD实现到我的主干应用程序中。我遇到的一个问题是,尽管我目前正在使用相同的代码用于带有express/mongoose/path的NodeJS服务器,但对于所有CRUD操作,我得到了404。这是我当前在本地主机上的文件夹结构

/
/myApplication/ (working dir)
/myApplication/js (contains all js files from Backbone app)
/myApplication/mongoServer.js (the server app)
因此,根据指南,唯一需要设置的是集合中的url

myCollection = Backbone.Collection.extend({
 model: myModel,
 url: '/api/myModels'
 ...
})
我所期望的是,一旦我添加了一个模型,因为它是集合的一部分,它就会创建一个集合(如果它不存在的话),然后将它与服务器同步。这可能会发生,但有一个例外

POST http://localhost/api/todos 404 (Not Found)
当然,我认为这是不正确的,因为它可能需要查看路径

POST http://localhost/myApplication/api/todos
因为mongoServer.js在myApplication的文件夹中。我真的不知道如何解决这个问题。也许有人可以改变路线,或者我的实现逻辑中有缺陷

编辑:同样为了澄清,我已经测试过了

url: '/myApplication/api/myModels'

XHR完成加载,但帖子仍然是404。

我遇到的一般问题是Express app server的设置。引起麻烦的线路是

app.configure(function() {
 app.use(express.static(path.join(application_root, "public")));
});
这基本上告诉express应用程序的静态路径在公共文件夹中(我显然没有)。express服务器通过侦听您选择的端口

app.listen(3000);
您实际想要访问的页面(如index.html或static.html)可以在下面找到

http://localhost:3000/index.html or static.html

本地主机之后没有任何/myApplication。这也有助于应用程序本身的常规url设置,因为它实际上只需要是/api/myModels

您是否尝试过url以查看它是否工作?使用edit可以完美地工作,因此我猜它只能在端口给定或express在端口80上运行时工作,对吗?您可以使用ngnix将api重新路由到端口80。或者你可以使用完全限定的URL(带有端口),但这会被视为跨域XHR请求,这是另一个问题。或者你可以使用express来服务js资源,在这种情况下,你不需要完全限定的URL,我不认为。