我正试图通过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.
});
有没有人暗示我在那里做错了什么?
答案 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
中