0

我试图通过node.js 和backbone.js 找到我的方式。我的意图是至少与服务器和浏览器共享所有模型状态。现在我不太确定我是否真的需要分享观点。我还想通过 express 和 nodejs 处理所有路由,而不是骨干网。为了让我的代码更加结构化,我期待将每个模型保存在单独的 *.js 文件中。通过这样做,我遇到了以下错误消息:

TypeError: Object #<Object> has no method 'extend'

我认为这可能是单独文件中缺少下划线的问题,所以这是我的基本模型:

模型/BaseModel.js

var Backbone = require('../node_modules/backbone'),
_ = require('../node_modules/underscore'),

var BaseModel = Backbone.Model.extend({

  modelName: 'basemodel'

});

exports.BaseModel = BaseModel;

app.js var BaseModel = require('./models/BaseModel');

var MyModel = BaseModel.extend({
// ... attributes, functions etc.

});

有没有人暗示我在那里做错了什么?

4

2 回答 2

1

然后在 app.js 中尝试这段代码:

BaseModel = require('./models/BaseModel').BaseModel;

或者在 models/BaseModel.js 中不exports.BaseModel = BaseModel;使用它 -module.exports = BaseModel

于 2013-03-06T19:38:19.190 回答
0

我真的想通了。缺陷在于引用 BaseModel,所以

这个

var MyModel = BaseModel.extend({
  //
});

不得不变成:

var MyModel = BaseModel.BaseModel.extend({
   //
};

因为exports.BaseModel = BaseModel; 在 BaseModel.js

于 2013-03-06T17:50:04.373 回答