错误:TypeError:“listener”参数必须是Node 7.7.2中的函数

时间:2017-03-09 15:42:03

标签: node.js

我一直在将我的项目升级到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运行完全相同的代码时,我没有收到错误,响应按预期返回。我已经搜索了错误几天了;但我不知道这是否只是一个通用的错误,我还没有找到任何特定于Node 7.7.2的东西。我发现了一件事,这就是我用7.7.1尝试它的原因。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:4)

我使用http://nvm.sh中的nvm在我的CentOS系统上选择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的此功能需要NVM。

<强> app.json

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

您可以从PM2启动此处理文件,如此

pm2 start ./app.json