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

Posted

技术标签:

【中文标题】如何在运行 Node.js 应用程序之前确保 MySQL 数据库存在【英文标题】:How to make sure a MySQL database exists before running Node.js app 【发布时间】:2015-10-12 02:37:50 【问题描述】:

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

【问题讨论】:

尝试连接数据库。如果数据库不存在,会报错。 【参考方案1】:

取自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 之前运行。

【讨论】:

以上是关于如何在运行 Node.js 应用程序之前确保 MySQL 数据库存在的主要内容,如果未能解决你的问题,请参考以下文章

如何确保在 Node JS 上的 render() 之前执行查询

Node.js 等待循环中读取的所有文件

Node.js 等待循环中读取的所有文件

Node.js运行

NodeJS3 种确保开源Node.js依赖包安全的方法

在 node.js 中检查存储桶是不是准备就绪的最佳方法