主干RESTful积垢404
因此,我试图通过使用将CRUD实现到我的主干应用程序中。我遇到的一个问题是,尽管我目前正在使用相同的代码用于带有express/mongoose/path的NodeJS服务器,但对于所有CRUD操作,我得到了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
/
/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,我不认为。