如何确保 MySQL 数据库在 运行 Node.js 应用程序之前存在

How to make sure a MySQL database exists before running Node.js app

我有一个基于 Node.js/Express 的应用程序,它使用 Sequelize 与 MySQL 服务器通信。在使用 npm start 启动应用程序之前确保特定数据库存在的最佳方法是什么?我想这将是某种运行 CREATE DATABASE IF NOT EXISTS foo; 的一次性数据库初始化脚本 - 我只是不确定将它放在哪里以及如何将它连接到生命周期事件。

摘自 the npm docs npm 支持 package.json 脚本的 "scripts" 属性,其中之一是 prestart,所以你可以有一个 package.json

{ "scripts" :
  { 
  "prestart" : "node scripts/mysqlCheck.js", 
  "start" : "node index.js"
  }
}

然后 mysqlCheck.js 进行 MySQL 数据库检查。那么当你 运行 npm start 时,prestart 脚本将在 index.js.

之前 运行