【发布时间】:2015-10-18 03:45:45
【问题描述】:
我正在构建我的第一个 node.js 应用程序。我使用 express js 和 sequelize 来处理 Data 对象。我想构建一个包含我的应用程序的所有模型的模型对象,但是这样做会出错。是什么原因造成的?
在模型/User.js 中:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('User', {
id : DataTypes.INTEGER,
firstName : DataTypes.STRING,
lastName : DataTypes.STRING,
email : DataTypes.STRING,
login : DataTypes.STRING,
password : DataTypes.STRING,
isAdmin : DataTypes.BOOLEAN
});
};
在模型/Project.js 中:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('Project', {
id : DataTypes.INTEGER,
projectName : DataTypes.STRING
});
};
在模型/Models.js 中:
var Sequelize = require('sequelize');
var env = process.env.NODE_ENV || "development";
var config = require(__dirname + '/../config/config.json')[env];
// initialize database connection
var sequelize = new Sequelize(config.name, config.username, config.password);
// load models
var models = [ 'Project', 'User' ];
models.forEach(function(model) {
console.log(__dirname + '/' + model);
console.log(sequelize.import(__dirname + '/' + model));
module.exports[model] = sequelize.import(__dirname + '/' + model);
});
// describe relationships
(function(m) {
m.Project.belongsToMany(m.User, {
through : 'UserProject'
});
m.User.belongsToMany(m.Project, {
through : 'UserProject'
});
})(module.exports);
// export connection
module.exports.sequelize = sequelize;
当我尝试运行我的 app.js 时,我收到以下错误:
/home/julien/Developpements/nodejs/rmtool/node_modules/sequelize/lib/utils.js:51 转 str.trim().replace(/[-_\s]+(.)?/g, function(match, c){ return c.toUpperCa ^ TypeError:无法读取未定义的属性“toUpperCase” 在/home/julien/Developpements/nodejs/rmtool/node_modules/sequelize/lib/utils.js:51:75 在 String.replace (本机) 在 Object.module.exports.camelize (/home/julien/Developpements/nodejs/rmtool/node_modules/sequelize/lib/utils.js:51:23) 在 Object.module.exports.camelizeIf (/home/julien/Developpements/nodejs/rmtool/node_modules/sequelize/lib/utils.js:18:22) 在新的 BelongsToMany (/home/julien/Developpements/nodejs/rmtool/node_modules/sequelize/lib/associations/belongs-to-many.js:112:56) 在 Mixin.belongsToMany (/home/julien/Developpements/nodejs/rmtool/node_modules/sequelize/lib/associations/mixin.js:297:21) 在/home/julien/Developpements/nodejs/rmtool/models/Model.js:20:13 在对象。 (/home/julien/Developpements/nodejs/rmtool/models/Model.js:26:4) 在 Module._compile (module.js:460:26) 在 Object.Module._extensions..js (module.js:478:10) 在 Module.load (module.js:355:32) 在 Function.Module._load (module.js:310:12) 在 Module.require (module.js:365:17) 在需要(module.js:384:17) 在对象。 (/home/julien/Developpements/nodejs/rmtool/routes/login.js:9:13) 在 Module._compile (module.js:460:26)
【问题讨论】:
标签: node.js express sequelize.js