今天在 Heroku 上托管我的第一个 Node JS 后端,但遇到了一个奇怪的问题。当我在部署后端后立即尝试注册/登录时,工作非常顺利,但如果我在大约 15 分钟后尝试注册/登录,我会收到 CORS 错误。 (我正在使用 cors 依赖项)。
这是我的服务器代码:
const express = require('express')
const mysql = require('mysql')
const cors = require('cors')
const bcrypt = require('bcrypt')
const app = express()
const saltRounds = 10
app.use(cors())
app.use(express.json())
app.post('/signup', (req, res) => {
const username = req.body.username
const password = req.body.password
bcrypt.hash(password, saltRounds, (err, hash) => {
if (err) {
console.log(err)
}
db.query("INSERT INTO users (username, password) VALUES (?, ?)", [username, hash],
(err, result) => {
console.log(err)
})
})
})
app.post('/login', (req, res) => {
const username = req.body.username
const password = req.body.password
db.query("SELECT * FROM users WHERE username = ?", [username], (err, result) => {
if (err) {
res.send({err: err})
}
if (result.length > 0) {
bcrypt.compare(password, result[0].password, (err, response) => {
if (response) {
res.send(result)
} else{
res.send({message: "Invalid Credentials"})
}
})
} else {
res.send({message: "User does not exist."})
}
})
})
如果我的代码格式有点奇怪,我很抱歉,我总是在 StackOverflow 的代码格式上挣扎。
答案 0 :(得分:0)
想通了! mysql 超时,因为我在 server.js 上使用 createConnection 而不是 createPool。希望这对未来的人有所帮助!