为什么Postgres导致“ [nodemon]干净退出-在重新启动之前等待更改”?

问题描述

当我尝试运行“ npm start”脚本(使用localhost端口9000进行开发)时,所有使用Postgres的项目(甚至是几周或几个月没有接触的项目)都崩溃了。唯一的错误指示是“ [nodemon]干净退出-等待更改,然后重新启动”。

但是,当我替换以下内容时,在我的server / index.js文件中:

db.sync()
  .then(() => {
    console.log(chalk.blue('database is synced!'));
    app.listen(PORT,(err) => {
      if (err) throw err;
      console.log(chalk.green(`server running on ${PORT}`));
    });
  });

仅包含app.listen部分:

app.listen(PORT,(err) => {
  if (err) throw err;
  console.log(chalk.green(`server running on ${PORT}`));
});

然后,该应用程序至少会加载并可以在localhost端口9000上访问(尽管显然没有需要数据库的功能)。

我使用的项目使用相同的启动程序/样板代码(和相同的脚本),但与Mongoose / MongoDB一起使用时,可以很好地使用所有数据库功能,并且没有任何问题。我已经多次确保我的进出口是一致的(再次-代码本身在几周内没有发生变化)。

我也尝试了以下方法:

  1. 测试多个项目并构建各自使用Postgres的新入门代码
  2. 停止Postgres服务器并终止所有Postgres进程(使用'sudo pkill -u postgres'和'pkill postgres'终端命令)
  3. 卸载Postgres应用程序(我最初是直接从postgresql网站下载的),删除所有Postgres文件夹,删除Postgres CLI工具的路径,重新安装并重新初始化上面的
  4. 验证我的应用程序正在连接到与Postgres服务器相同的端口(默认端口5432)

我仍然可以初始化并启动Postgres服务器。 Postgres CLI工具仍然可以使用,我仍然能够创建新数据库并使用这些数据库执行基本操作,因此我不确定为什么我的应用程序会出现问题。预先感谢您的帮助,对于冗长的信息,我深表歉意。我将在下面添加其他代码以供参考:

#server / db / index.js -注意:下面的导出在顶部代码段中以“ db”的形式导入,运行时我可以确认存在一个名为“ boiler”的数据库我的Postgres服务器

const Sequelize = require('sequelize');
const chalk = require('chalk');

const DB_NAME = 'boiler';

module.exports = new Sequelize(process.env.DATABASE_URL || `postgres://localhost:5432/${DB_NAME}`,{
  logging: false,});

package.json脚本-播种也不起作用,但是运行种子脚本不会产生任何错误消息

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1","start": "webpack -w & nodemon server/index.js","build": "webpack","db-init": "pg-init boiler","postinstall": "npm run db-init","seed": "node server/db/seed.js"
  },

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)