错误:TypeError:“侦听器”参数必须是节点7.7.2中的函数

我一直在升级我的项目到Node 7.7.2。 该项目有一大堆的API和数据库调用等。当我尝试运行该项目,

TypeError: "listener" argument must be a function at Socket.once (events.js:307:11) at Socket.connect (net.js:943:10) at Connection.connectOnPort ([path]/testing/mssql/node_modules/tedious/lib/connection.js:429:19) at Connection.connect ([path]/testing/mssql/node_modules/tedious/lib/connection.js:402:21) at Connection.initialiseConnection ([path]/testing/mssql/node_modules/tedious/lib/connection.js:77:12) at Connection.enter ([path]/testing/mssql/node_modules/tedious/lib/connection.js:975:19) at Connection.transitionTo ([path]/testing/mssql/node_modules/tedious/lib/connection.js:508:33) at new Connection ([path]/testing/mssql/node_modules/tedious/lib/connection.js:66:10) at Object.cfg_pool.create ([path]/testing/mssql/node_modules/mssql/lib/tedious.js:375:19) at Pool._createResource ([path]/testing/mssql/node_modules/generic-pool/lib/generic-pool.js:354:17) 

但是,当我使用Node 7.7.1运行完全相同的代码时,我不会收到错误,并且响应会按预期返回。 我已经搜查了几天的错误, 但我不知道是否只是一个通用的错误,我还没有真正能够find特定于节点7.7.2的任何东西。 我发现了一件事情,这就是我用7.7.1来试用它的原因。 任何帮助将不胜感激!

我用http://nvm.sh中的 nvm在我的CentOS系统上select了7.7.1 (它已经通过yum-cron自动更新)。 请参阅要在不同的操作系统上安装的链接。

 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash nvm install 7.7.1 nvm use 7.7.1 node -v 

输出:

v7.7.1

我碰巧使用PM2来运行我的应用程序,并最终不得不使用JSON文件来定义条目并指定节点版本。 请注意,PM2的这个function需要NVM。

app.json

 { "apps": [{ "name": "MyApp", "script": "script.js", "interpreter": "node@7.7.1" }] } 

你可以像这样从PM2启动这个进程文件

 pm2 start ./app.json