【发布时间】:2021-05-16 21:30:19
【问题描述】:
请是 Nodejs 的新手,但我正在尝试使用 sequelize 将数据插入我的数据库,但我收到无法读取属性 .create of undefined。
这是我的 index.js 文件
const fs = require('fs')
const path = require('path')
const Sequelize = require('sequelize')
const config = require('../config/config')
const db = {}
const sequelize = new Sequelize(
config.DB,
config.USER,
config.PASSWORD,
{
host: config.HOST,
dialect: config.dialect,
operatorsAliases: false,
pool: {
max: config.pool.max,
min: config.pool.min,
acquire: config.pool.acquire,
idle: config.pool.idle
}
});
fs
.readdirSync(__dirname)
.filter((file) =>
file !== 'index.js'
)
.forEach((file) => {
const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes)
// db[model] = model
db.User = model
})
db.sequelize = sequelize
db.Sequelize = Sequelize
module.exports = db;
这是我的 Model/User.js 文件
module.exports = (sequelize, DataTypes) => {
sequelize.define('User', {
hmtec_email: {
type: DataTypes.STRING,
unique: true
},
hmtec_password: DataTypes.STRING
})
这是我的 Controllers/AuthController.js 文件
const {User} = require ('../models/User')
module.exports = {
async register (req, res) {
try {
const user = await User.create(req.body)
res.send(user.toJSON())
} catch (err) {
console.log(err);
res.status(400).send({
error: 'Email already in Use'
})
}
}
我不知道代码有什么问题,我不知道为什么会收到 .create 的错误未定义
【问题讨论】:
-
在 AuthController 类型 ``` const user = new User(req.body);等待用户保存(); ``` 而不是
const user = await User.create(req.body) -
我知道用户不是构造函数...任何想法
标签: node.js sequelize.js