【发布时间】:2017-01-20 02:10:20
【问题描述】:
这个 automigrate.js 脚本过去可以正常工作,但现在它挂起而没有退出新的 strongloop 版本。
Strongloop 伙计们,这不再退出的原因是什么?尝试设置自动部署,但这是一个障碍。
var path = require('path');
var app = require(path.resolve(__dirname, '../server'));
var _ = require('lodash');
// fix for (node) warning: possible EventEmitter memory leak detected
require('events').EventEmitter.prototype._maxListeners = 100;
var dataSource = app.dataSources.mysqlDB;
dataSource.autoupdate([
'Person'
], function(err) {
if (err) {
return console.log(err);
}
console.log('closing pool'); // this echoes but...
dataSource.disconnect(); // ...script never exits
});
【问题讨论】:
-
我不确定您所说的“不再退出”是什么意思,但如果这就是您拥有的所有代码,那么就没有任何事情可以让该代码保持运行。
dataSource.disconnect()method 只是调用 mysql 连接器的disconnect()方法,而后者又只是调用 mysql 库的end()method。 -
我的意思是脚本挂起,不会像以前那样以 0 退出,因此在通过结构或通过 ssh 运行以实现自动化时它是无用的(此文件之后的下一个命令将从不跑)。每个 strongloop 的人,这可能是由于最新的节点 mysql 驱动程序不好。
-
啊,好吧,我很高兴您联系了支持人员,很遗憾我们只是随心所欲地受节点数据库驱动程序的影响,但我们对此无能为力。如果问题得到解决,请更新!
-
@uzyn 是的,我正在使用
process.exit(0);来强制解决这个问题,但仍然没有真正的解决方法或根本原因。 -
@Brian — 如果您向 Loopback 团队提交了问题,能否请您在 cmets 中将其链接到此处?似乎我们中有很多人遇到这个问题都想关注解决进度。
标签: javascript node.js loopbackjs strongloop