【发布时间】:2020-01-16 04:07:42
【问题描述】:
这是一个文件的摘录,该文件使用 db 作为 db.js 文件中的变量,该文件是连接到数据库的文件。这很好用。
const Sequelize = require("sequelize")
const db = require("../database/db.js")
module.exports = db.sequelize.define(
"physics_tbls", {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},...
当我将 db.sync() 添加到此文件的末尾时,我收到一个错误。以上是文件的结尾,
.......
Sub_part: {
type: Sequelize.STRING
}
}, {
timestamps: false
}
)
db.sync({
// force: true
})
.then(() => {
console.log('Connection to database established successfully.');
})
.catch(err => {
console.log('Unable to connect to the database: ', err);
})
我得到了错误,
TypeError: db.sync is not a function
如果 db.sequelize 有效,为什么 db.sync() 无效?
也许 db.sync 应该与包含变量 db 的 db.js 位于同一个文件中。但我确实需要在 sync() 之前定义我的模型。
这是 db.js
const Sequelize = require("sequelize")
const db = {}
const sequelize = new Sequelize("physics_papers_db", "root", "********", {
host: "localhost",
dialect: "mysql",
// operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
})
db.sequelize = sequelize
db.Sequelize = Sequelize
module.exports = db
我的 Express 路线顺便在另一个名为 tasks.js 的文件中
const Sequelize = require('sequelize')
var express = require("express")
var router = express.Router()
const Task = require("../model/Task")
//Test
router.get("/test", (req, res) => {
Task.findAll({
//Use attributes to only select specific fields
attributes: ['Question', 'Marks']
})
.then(tasks => {
console.log("router.get(\"/test\", (req, res) => {...");
console.log("All tasks:", JSON.stringify(tasks, null, 4));
res.json(tasks)
})
.catch(err => {
res.send("error: " + err)
})
})
........... more routes...
module.exports = router
谢谢,
【问题讨论】:
标签: node.js express orm synchronization sequelize.js