【发布时间】:2019-02-26 21:21:55
【问题描述】:
我正在尝试为 nodeJS 项目创建数据库设置脚本。
我有以下异步函数 createTable 查询 PostgreSQL 数据库。
问题是执行完所有操作后脚本并没有退出。
我尝试将process.exit(0) 附加到文件末尾,但这只是过早地终止了脚本(我认为它在异步操作运行时执行)。
操作完成后如何正确退出脚本?
const dbInit = () => {
const createTable = async (creationQuery, tableName) => {
try {
const created = await client.query(creationQuery);
if (created) logger(`'${tableName}' table created successfully`);
} catch (err) {
logger(err.message);
}
};
createTable(Schemas.userModel, 'Users');
createTable(Schemas.orderModel, 'Orders');
};
dbInit();
【问题讨论】:
-
某些东西使您的脚本保持运行。例如,可以是打开的数据库连接或计时器事件。见npmjs.com/package/wtfnode
-
Promise.all([createTable(…), createTable(…)]).then(() => process.exit(0), err => { console.error(err); process.exit(1); })
标签: javascript node.js asynchronous async-await