【问题标题】:Strongloop Loopback dataSource.disconnect no longer disconnects?Strongloop Loopback dataSource.disconnect 不再断开连接?
【发布时间】: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


【解决方案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");
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    相关资源
    最近更新 更多