节点js导出变量维护引用 - 按引用传递?

时间:2013-02-26 07:12:38

标签: node.js reference pass-by-reference sequelize.js

嘿,我只是想确保我没有犯这个错误。我正在使用Sequelize.js作为node.js项目。我想确保我通过引用传递,有人请解释这个概念,以及是否有更好的方法来做到这一点。

var sequelize = new Sequelize(database, user, password);
exports.User = User = sequelize.import(__dirname + '/models/user');
exports.Comment = Comment = sequelize.import(__dirname + '/models/comment');

User.hasMany(Comment);
Comment.belongsTo(User);

// I dont want my code to look like this

exports.User.hasMany(exports.Comment);

我认为我正在做的是引用相同的内存。因此,如果用户被改变了,它也会改变exports.User。是对的吗?

我这样做的原因是我想在models.js文件中使用变量User,以便更容易地执行User.hasMany(注释)等...并且还能够将相同的变量导出到我申请的其余部分。有什么建议,警告,见解吗?

1 个答案:

答案 0 :(得分:3)

你是对的,他们是同一个变量。但是,这很糟糕,因为您没有“var”语句。

exports.User = User = sequelize.import(__dirname + '/models/user');

这样做。

var User = exports.User = sequelize.import(__dirname + '/models/user');

另外,您不小心在评论行上设置了User