Node.js 无法连接到postgres

Node.js 无法连接到postgres,node.js,linux,postgresql,sequelize.js,Node.js,Linux,Postgresql,Sequelize.js,几天前,我从windows迁移到linux,我一直做得很好,直到我不得不回去与同事一起处理一个特定的项目,现在我似乎无法启动应用程序,因为数据库配置一直被拒绝并抛出错误 我的.env文件 现在这个.env配置在我的windows机器上运行良好,但是当我尝试在linux上使用它时,我得到了以下错误 ERROR: password authentication failed for user "optimusPrime" 有人能解释为什么它会看到OptimuPrime(这是我的

几天前,我从windows迁移到linux,我一直做得很好,直到我不得不回去与同事一起处理一个特定的项目,现在我似乎无法启动应用程序,因为数据库配置一直被拒绝并抛出错误

我的.env文件 现在这个.env配置在我的windows机器上运行良好,但是当我尝试在linux上使用它时,我得到了以下错误

ERROR: password authentication failed for user "optimusPrime"
有人能解释为什么它会看到OptimuPrime(这是我的工作名称)
optimusPrime@root
作为用户而不是postgres,我如何配置它或编辑代码,使其与linux上的Node.js应用程序(我和我的团队正在使用sequelize ORM)一起工作,就像在windows上一样。配置文件如下所示

require('dotenv').config();

module.exports = {
  development: {
    username: process.env.DB_USER,
    password: process.env.DB_PASS,
    database: process.env.DB_NAME,
    host: process.env.DB_HOST,
    dialect: 'postgres',
  }
 }
这是日志文件中的错误

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/home/optimusPrime/.nvm/versions/node/v12.0.0/bin/node',
1 verbose cli   '/home/optimusPrime/.nvm/versions/node/v12.0.0/bin/npm',
1 verbose cli   'run',
1 verbose cli   'postinstall'
1 verbose cli ]
2 info using npm@6.13.1
3 info using node@v12.0.0
4 verbose run-script [ 'postinstall' ]
5 info lifecycle Dae-Alright-Backend@1.0.0~postinstall: Dae-Alright-Backend@1.0.0
6 verbose lifecycle Dae-Alright-Backend@1.0.0~postinstall: unsafe-perm in lifecycle true
7 verbose lifecycle Dae-Alright-Backend@1.0.0~postinstall: PATH: /home/optimusPrime/.nvm/versions/node/v12.0.0/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/optimusPrime/Documents/projects/Dae-Alright-Backend/node_modules/.bin:/home/optimusPrime/.nvm/versions/node/v12.0.0/bin:/home/optimusPrime/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
8 verbose lifecycle Dae-Alright-Backend@1.0.0~postinstall: CWD: /home/optimusPrime/Documents/projects/Dae-Alright-Backend
9 silly lifecycle Dae-Alright-Backend@1.0.0~postinstall: Args: [ '-c', 'npm run build && npm run db:migrate' ]
10 silly lifecycle Dae-Alright-Backend@1.0.0~postinstall: Returned: code: 1  signal: null
11 info lifecycle Dae-Alright-Backend@1.0.0~postinstall: Failed to exec postinstall script
12 verbose stack Error: Dae-Alright-Backend@1.0.0 postinstall: `npm run build && npm run db:migrate`
12 verbose stack Exit status 1
12 verbose stack     at EventEmitter.<anonymous> (/home/optimusPrime/.nvm/versions/node/v12.0.0/lib/npm/node_modules/npm-lifecycle/index.js:332:16)
12 verbose stack     at EventEmitter.emit (events.js:210:5)
12 verbose stack     at ChildProcess.<anonymous> (/home/optimusPrime/.nvm/versions/node/v12.0.0/lib/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
12 verbose stack     at ChildProcess.emit (events.js:210:5)
12 verbose stack     at maybeClose (internal/child_process.js:1023:16)
12 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:281:5)
13 verbose pkgid Dae-Alright-Backend@1.0.0
14 verbose cwd /home/optimusPrime/Documents/projects/Dae-Alright-Backend
15 verbose Linux 4.15.0-54-generic
16 verbose argv "/home/optimusPrime/.nvm/versions/node/v12.0.0/bin/node" "/home/optimusPrime/.nvm/versions/node/v12.0.0/bin/npm" "run" "postinstall"
17 verbose node v12.0.0
18 verbose npm  v6.13.1
19 error code ELIFECYCLE
20 error errno 1
21 error Dae-Alright-Backend@1.0.0 postinstall: `npm run build && npm run db:migrate`
21 error Exit status 1
22 error Failed at the Dae-Alright-Backend@1.0.0 postinstall script.
22 error This is probably not a problem with npm. There is likely additional logging output above.
23 verbose exit [ 1, true ]
0信息如果它以ok结尾,它就工作了
1详细cli[
1 verbose cli'/home/optimusPrime/.nvm/versions/node/v12.0.0/bin/node',
1 verbose cli'/home/optimusPrime/.nvm/versions/node/v12.0.0/bin/npm',
1详细cli“运行”,
1个详细cli“postinstall”
1详细cli]
2信息使用npm@6.13.1
3信息使用node@v12.0.0
4详细运行脚本['postinstall']
5信息生命周期:好的-Backend@1.0.0~postinstall:好吧-Backend@1.0.0
6详细的生命周期数据集-Backend@1.0.0~postinstall:生命周期中的不安全烫发为true
7详细的生命周期数据集-Backend@1.0.0~postinstall:路径:/home/optimusPrime/.nvm/versions/node/v12.0.0/lib/node\u modules/npm/node\u modules/npm生命周期/node gyp-bin:/home/optimusPrime/Documents/projects/Dae-node/Backend/node\u modules/.bin:/home/optimusPrime/.nvm/versions/node/v12.0.0/bin:/home/optimusPrime/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/usr/sbin:/usr/bin:/usr/games:/usr/bin:/usr/es:/snap/bin
8详细的生命周期数据集-Backend@1.0.0~postinstall:CWD:/home/optimusPrime/Documents/projects/Dae
9.好的-Backend@1.0.0~postinstall:Args:['-c',npm运行构建和npm运行数据库:迁移']
10分钟好吗-Backend@1.0.0~postinstall:返回:代码:1信号:null
11信息生命周期:好的-Backend@1.0.0~postinstall:无法执行postinstall脚本
12详细堆栈错误:Dae正常-Backend@1.0.0postinstall:`npm运行生成和npm运行数据库:迁移`
12详细堆栈退出状态1
12 EventEmitter上的详细堆栈。(/home/optimusPrime/.nvm/versions/node/v12.0.0/lib/npm/node_modules/npm lifecycle/index.js:332:16)
12 EventEmitter.emit上的详细堆栈(events.js:210:5)
12子进程上的详细堆栈。(/home/optimusPrime/.nvm/versions/node/v12.0.0/lib/npm/node_modules/npm lifecycle/lib/spawn.js:55:14)
12 ChildProcess.emit上的详细堆栈(events.js:210:5)
12 maybeClose的详细堆栈(internal/child_process.js:1023:16)
12 Process.ChildProcess.\u handle.onexit处的详细堆栈(internal/child\u Process.js:281:5)
13详细的pkgid数据集-Backend@1.0.0
14详细的cwd/home/OptimuPrime/Documents/projects/Dae
15详细Linux 4.15.0-54-generic
16详细argv“/home/optimusPrime/.nvm/versions/node/v12.0.0/bin/node”“/home/optimusPrime/.nvm/versions/node/v12.0.0/bin/npm”“运行”“安装后”
17详细节点v12.0.0
18详细的npm v6.13.1
19错误代码ELIFECYCLE
20错误1
21错误:好的-Backend@1.0.0postinstall:`npm运行生成和npm运行数据库:迁移`
21错误退出状态1
22错误在Dae上失败-Backend@1.0.0安装后脚本。
22错误这可能不是npm的问题。上面可能还有其他日志输出。
23详细退出[1,true]

所以显然我的
pg_hba.conf
文件需要更好地编辑

sudo nano /etc/postgresql/10/main/pg_hba.conf
因此,我以超级用户的身份打开它,并对其进行编辑,以使其成为我想要使用的用户(我最初在启动项目时创建的用户),并将其从md5更改为trust

# Database administrative login by Unix domain socket
local   all             postgres                                trust

local   all             otherUser                               trust

此外,为了安全起见,如果我让另一个用户成为postgres超级用户,我可以更改它的密码,并且我还可以在项目中使用它

查看服务器日志文件以获得更完整的错误消息。发送给未经身份验证的用户的错误消息故意含糊不清。我已对问题进行了编辑,以将输出包含在日志文件(即app server日志文件)中。您需要PostgreSQL server日志文件。
# Database administrative login by Unix domain socket
local   all             postgres                                trust

local   all             otherUser                               trust