【发布时间】:2020-04-19 01:32:37
【问题描述】:
我是sequelize.js 的新手。我有一个模型用户。我尝试使用 findOne 函数来检查用户是否存在。
这是我的用户模型。
const Sequelize = require('sequelize')
const db = require('../database/db.js')
module.exports = db.sequelize.define(
'user',
{
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
type: Sequelize.STRING
},
email: {
type: Sequelize.STRING
},
username: {
type: Sequelize.STRING
},
password: {
type: Sequelize.STRING
},
address: {
type: Sequelize.STRING
},
created: {
type: Sequelize.DATE,
defaultValue: Sequelize.NOW
},
role: {
type: Sequelize.STRING
}
},
{
timestamps: false
}
)
这就是我检查用户的方式。
const express = require('express')
const users = express.Router()
const cors = require('cors')
const jwt = require('jsonwebtoken')
const bcrypt = require('bcrypt')
const User = require('../../models/User')
users.use(cors())
process.env.SECRET_KEY = 'secret'
users.post('/register', (req, res) => {
console.log("testing register zzz");
const today = new Date()
const userData = {
name: req.body.name,
email: req.body.email,
username: req.body.username,
password: req.body.password,
address: req.body.address,
created: today,
role: req.body.role
}
User.findOne({
where: {
email: req.body.email
}
}).then(user => {
if (!user) {
console.log("not inside database");
bcrypt.hash(req.body.password, 10, (err, hash) => {
userData.password = hash
User.create(userData)
.then(user => {
res.json({ status: user.email + 'Registered! liao' })
})
.catch(err => {
res.send('error: ' + err)
})
})
} else {
console.log("inside database");
res.json({ error: 'User already exists' })
}
})
.catch(err => {
console.log("?????? "+err);
res.send('error: ' + err)
})
})
但是,我收到一个错误,告诉我表 users 不存在。 mysql数据库中的表名是user。如何更改 findOne 目标表名,以便 findOne 函数搜索用户表而不是用户表?
【问题讨论】:
标签: javascript mysql reactjs database sequelize.js