javascript - 如何在数据库中保存注册发布请求
问题描述
以下代码正常工作,注册和登录帐户。
我Data.create
在寄存器上添加了一个 POST 请求,它保存了寄存器中的数据,也可以正确保存。
问题是,在我关闭服务器并再次打开后,数据没有保存在用户变量中,我无法使用我之前注册的内容登录。
服务器.js
const initializePassport = require('./passport-config')
initializePassport(
passport,
email => users.find(user => user.email === email),
id => users.find(user => user.id === id)
)
const users = []
app.post('/register', checkNotAuthenticated, async (req, res) => {
try {
const hashedPassword = await bcrypt.hash(req.body.password, 10)
users.push({
id: Date.now().toString(),
name: req.body.name,
email: req.body.email,
password: hashedPassword
}),
Data.create({
name: req.body.name,
email: req.body.email,
password: hashedPassword
})
res.redirect('/login')
} catch {
res.redirect('/register')
}
})
护照-config.js
const LocalStrategy = require('passport-local').Strategy
const bcrypt = require('bcrypt')
function initialize(passport, getUserByEmail, getUserById) {
const authenticateUser = async (email, password, done) => {
const user = getUserByEmail(email)
if (user == null) {
return done(null, false, { message: 'No user with that email' })
}
try {
if (await bcrypt.compare(password, user.password)) {
return done(null, user)
} else {
return done(null, false, { message: 'Password incorrect' })
}
} catch (e) {
return done(e)
}
}
passport.use(new LocalStrategy({ usernameField: 'email' }, authenticateUser))
passport.serializeUser((user, done) => done(null, user.id))
passport.deserializeUser((id, done) => {
return done(null, getUserById(id))
})
}
module.exports = initialize
data.js(数据库)
var Data = sequelize.define('data', {
name: Sequelize.STRING,
email: Sequelize.STRING,
password: Sequelize.STRING
});
module.exports = Data;
解决方案
推荐阅读
- python - tf.config.experimental.list_logical_devices('GPU') 使内核和 jupyter notebook 服务器崩溃
- php - 上传没有编码的xml文件
- sql - 在 SQL Oracle 中通过仅匹配前两个十进制值来舍入一个数字
- recursion - 如何将此序列转换为 MIPS 汇编代码?
- python - 如果 groupby 对象中的列值为最小值,则返回 pandas 系列的更快方法,否则返回 False
- javascript - HighCharts:Variwide 列堆积图
- python - Python:具有太多索引的数组?
- r - R中的多次for循环时间计算非常高
- javascript - 如何在数组映射循环中的redux saga中向firebase发出并行请求?
- c - time(NULL) 在 PIC-IoT WG 开发板上返回 0