Sequelize – 无法读取未定义的属性'define'

我试图插入一个logging到MYSQL表使用sequelize。

安装了sequelize和mysql。

npm install --save sequelize npm install --save mysql 

在app.js中定义它

 var Sequelize = require('sequelize'); 

db.js

 var Sequelize = require('sequelize'); var sequelize = new Sequelize('randomdb', 'root', 'root', { host: 'localhost', dialect: 'mysql', port : 8889, pool: { max: 5, min: 0, idle: 10000 } }); exports.sequelize = sequelize; module.exports = Sequelize; 

路线/ index.js

 var express = require('express'); var router = express.Router(); var sequelize = require('../db').sequelize; /* GET home page. */ router.get('/', function (req, res, next) { res.render('index', {title: 'Express'}); }); router.get('/adduser', function (req, res) { var User = sequelize.define('users', { first_name: Sequelize.STRING }); sequelize.sync().then(function () { return User.create({ first_name: 'janedoe' }); }).then(function (jane) { console.log(jane.get({ plain: true })) }); }); module.exports = router; 

这是错误。

无法读取未定义的属性“定义”

TypeError:无法读取未定义的属性'define'

less了什么东西?

编辑2

db.js

 var Sequelize = require('sequelize'); var sequelize = new Sequelize('randomdb', 'root', 'root', { host: 'localhost', dialect: 'mysql', port: 8889, pool: { max: 5, min: 0, idle: 10000 }, define: { timestamps: false } }); var db = {}; db.sequelize = sequelize; db.Sequelize = Sequelize; module.exports = db; 

车型/ user.js的

 var db = require('../db'), sequelize = db.sequelize, Sequelize = db.Sequelize; var User = sequelize.define('random', { first_name: Sequelize.STRING }); module.exports = User; 

路线/ index.js

 var express = require('express'); var router = express.Router(); var db = require('../db'), sequelize = db.sequelize, Sequelize = db.Sequelize; var User = require('../models/user'); router.get('/adduseryes', function (req, res) { sequelize.sync().then(function () { return User.create({ first_name: 'janedoe' }); }).then(function (jane) { res.send("YES"); }); }); module.exports = router; 

在你的db.js文件中,你正在用Sequelizevariables覆盖exportsvariables。 在node.js中, module.exports == exports 。 试试这个:

 var Sequelize = require('sequelize'); var sequelize = new Sequelize(...); var db = {}; db.sequelize = sequelize; db.Sequelize = Sequelize; module.exports = db; 

然后,您可以在routes / index.js中修改您的导入,如下所示:

 var db = require('../db'), sequelize = db.sequelize, Sequelize = db.Sequelize;