使用node.js将Backbone模型放置在外部文件中

时间:2013-03-06 17:16:39

标签: node.js backbone.js

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

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

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

模型/ 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.

});

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

2 个答案:

答案 0 :(得分:1)

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

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

或者在不是exports.BaseModel = BaseModel;的模型/ BaseModel.js中使用它 - module.exports = BaseModel

答案 1 :(得分:0)

我实际上已经明白了。缺陷是引用BaseModel,所以

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

必须变成:

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

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