【问题标题】:throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string'throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: 客户端密码必须是字符串'
【发布时间】:2022-03-31 19:46:03
【问题描述】:
我尝试连接我的数据库来表达,但我在 PostgreSQL 上有这条消息..
throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string'
如果有人解决了同样的问题;)
【问题讨论】:
标签:
node.js
postgresql
express
【解决方案1】:
当我尝试将本地运行的网站连接到本地运行的数据库时,出现了同样的错误消息。
我能够将我的本地网站连接到我的实时数据库。我的实时网站也可以与我的实时数据库一起正常工作。
但我无法将本地网站(或 Postman)连接到本地数据库。
但是,我刚刚得到朋友的帮助来解决这个问题。我将此行添加到我的 pool.js 文件的顶部:
import dotenv from 'dotenv/config';
问题在于它没有从 pool.js 文件中访问环境变量。虽然,我的朋友说更好的解决方案是将“dotenv/config”添加到 package.json 文件中的脚本中,但他不确定正确的语法是什么,所以我将尝试接下来就知道了。
【解决方案2】:
你在安装 Postgresql 时是否设置了 Postgres 用户的密码?因为我遇到了同样的问题,我通过在安装 Postgres 时执行这个愚蠢但显然很重要的步骤来解决它。
运行 shell,然后使用命令 \password。
然后应该把这个相同的密码放在你用来通过 express 连接数据库的代码中。
【解决方案3】:
语法是
nodemon -r dotenv/config src/server.js