繁体   English   中英

骨干RESTful CRUD 404

[英]Backbone RESTful CRUD 404

因此,我尝试使用Addy Osmani将CRUD实施到我的Backbone应用程序中。 我遇到的问题之一是,尽管我目前对带有Express / Mongoose / path的NodeJS服务器使用相同的代码,但我得到的所有CRUD操作都为404。 这是我当前在本地主机上的文件夹结构

/
/myApplication/ (working dir)
/myApplication/js (contains all js files from Backbone app)
/myApplication/mongoServer.js (the server app)

因此,根据指南,唯一需要设置的是集合中的网址

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完成加载,但POST仍为404。

我遇到的一般问题是Express应用服务器的设置。 造成麻烦的那条线是

app.configure(function() {
 app.use(express.static(path.join(application_root, "public")));
});

从根本上讲,这表明该应用程序的静态路径在公用文件夹中(我显然没有)。 当快递服务器监听您通过选择的端口时

app.listen(3000);

您实际要访问的页面(例如index.html或static.html)可以在下面找到

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM