2015-04-02 72 views
3

这个automigrate.js脚本用于正常工作,但现在它挂起而没有退出新的strongloop版本。Strongloop Loopback dataSource.disconnect不再断开连接?

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 

}); 
+0

我不完全确定你是什么意思的“不再退出”,但如果这是你有的所有代码,那么没有任何事情是为了保持代码运行。 ['dataSource.disconnect()'方法](https://github.com/strongloop/loopback-datasource-juggler/blob/9083370e175c3d07ed19facdc709c5d2c987e10e/lib/datasource.js#L1745-L1757)只是调用mysql连接器的'disconnect( )'方法,该方法又调用mysql库的['end()'方法](https://github.com/strongloop/loopback-connector-mysql/blob/2a249beb77ecd3cb24c38071ab22629e290a1353/lib/mysql.js#L1288-L1295) 。 – jakerella 2015-04-03 13:36:45

+0

我的意思是脚本挂起,并不象以前那样以0退出,所以当通过结构或通过ssh运行以实现自动化时(这个文件之后的下一个命令永远不会运行),它是没用的。每个strongloop的人可能是由于最新的节点MySQL驱动程序不好玩。 – Brian 2015-04-06 21:30:59

+0

啊,好吧,我很高兴你已经联系了支持人员,不幸的是我们处于节点DB驱动程序的意外之中,但我们无法做到这一点。请更新,如果它得到解决! – jakerella 2015-04-07 12:52:59

回答

1

您需要在连接数据源后断开连接。试试这个:

var path = require('path'); 
var app = require(path.join(__dirname,"..","server","server")); 
var ds = app.datasources.mysql; 
ds.once('connected', function() { 
    ds.disconnect(); 
    console.log("here"); 
});