【发布时间】:2020-01-13 17:17:45
【问题描述】:
我正在使用 node 和 sequelize 开发一个后端应用程序。我的数据库来自 postgresql。
启动应用程序时,数据库连接工作正常,但当它尝试与数据库通信以读取或更新时,它会失败并出现连接错误: 用户“wushin”的密码认证失败。
对我来说似乎很奇怪,因为数据库连接已经完成,并且密码已经过验证。你们知道发生了什么吗?可能是 pg 模块的问题,但我尝试了不同的版本。
版本 节点:10.17.0 续集:5.21.3 Postgres:10.11 pg模块:7.17.1
-> 这段代码运行良好:
const sequelize = new Sequelize(process.env.DATABASE_DEV_URL)
sequelize
.authenticate()
.then(() => {
console.log('Connection has been established successfully.\n')
})
.catch(err => {
console.error('Unable to connect to the database:', err)
})
-> 但是这个承诺因 SequelizeConnectionError 而失败:
models.Question.findAll()
.then(data => {
console.log('-> Succeeded data fetching\n')
console.log(data)
})
.catch(err => {
console.log('-> Failed data fetching\n')
console.log('Error', err)
})
日志:
yarn run v1.19.2
$ node index.js
Example app listening on port 4000 or something!
Executing (default): SELECT 1+1 AS result
Connection has been established successfully.
- Trying to fetch data:
-> Failed data fetching
Error:
{ SequelizeConnectionError: password authentication failed for user "wushin"
at connection.connect.err (/home/wushin/Projects/GuessGame/theguessgame-api/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:182:24)
at Connection.connectingErrorHandler (/home/wushin/Projects/GuessGame/theguessgame-api/node_modules/pg/lib/client.js:194:14)
at Connection.emit (events.js:198:13)
at Socket.<anonymous> (/home/wushin/Projects/GuessGame/theguessgame-api/node_modules/pg/lib/connection.js:128:12)
at Socket.emit (events.js:198:13)
at addChunk (_stream_readable.js:287:12)
at readableAddChunk (_stream_readable.js:268:11)
at Socket.Readable.push (_stream_readable.js:223:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
name: 'SequelizeConnectionError'
【问题讨论】:
-
您能否显示您的 DATABASE_DEV_URL,只是隐藏您的密码...同时发布您将模型与您建立连接的 sequelize 实例相关联的代码
-
如果您使用的是
node.jsdotenv和pg,请确保您的index.js中有require('dotenv').config();。添加后,此错误已修复。
标签: node.js postgresql sequelize.js