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覆盖exports
variables。 在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;