所以我尝试使用book from Addy Osmani将CRUD实现到我的Backbone应用程序中。我遇到的一个问题是,虽然我目前使用带有express / mongoose / path的NodeJS服务器的相同代码,但我获得了所有CRUD操作的404。这是我在localhost上的当前文件夹结构
/
/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完成加载,但POST仍然是404。
答案 0 :(得分:0)
我遇到的一般问题是使用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
在localhost之后没有任何 / myApplication 。这也有助于应用程序本身的常规URL设置,因为它实际上只需要 / api / myModels