Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 弃用警告process.EventEmitter已弃用_Javascript_Node.js_Centos_Deprecation Warning - Fatal编程技术网

Javascript 弃用警告process.EventEmitter已弃用

Javascript 弃用警告process.EventEmitter已弃用,javascript,node.js,centos,deprecation-warning,Javascript,Node.js,Centos,Deprecation Warning,已经应用了require('events'),但警告仍在持续显示,我在这里做错了什么?为什么process.EventEmitter即使未使用也会一直显示 节点v6.7.0正常工作,但v6.9.1在CentOS 7.2上实现了这一点 var pro = require('events'); var port = parseInt(config.server.port, 10); var io = require('socket.io').listen(port); // This line is

已经应用了require('events'),但警告仍在持续显示,我在这里做错了什么?为什么
process.EventEmitter
即使未使用也会一直显示

节点v6.7.0正常工作,但v6.9.1在CentOS 7.2上实现了这一点

var pro = require('events');
var port = parseInt(config.server.port, 10);
var io = require('socket.io').listen(port); // This line is causing it???
输出警告:

dev environment detected
   info  - socket.io started
(node:32708) DeprecationWarning: process.EventEmitter is deprecated. Use require('events') instead.
编辑:

dev environment detected
   info  - socket.io started
(node:32708) DeprecationWarning: process.EventEmitter is deprecated. Use require('events') instead.
我使用了
$npm安装
其中package.json包含以下内容:

{
  "name": "TEST",
  "description": "TEST",
  "version": "0.0.2",
  "dependencies": {
    "getconfig": "0.3.0",
    "node-uuid": "1.2.0",
    "socket.io": "0.9.16",
    "yetify": "0.0.1"
  },
  "main": "test.js",
  "repository": {
    "type": "git",
  },
  "devDependencies": {
    "socket.io-client": "0.9.16",
    "precommit-hook": "0.3.10",
    "tape": "^2.13.1"
  },
  "scripts": {
    "test": "node test.js"
  }
}

您可能正在使用和旧版本的socket.io,因为在代码中您没有直接使用process.EventEmitter。如果你发布的这个程序显示了警告,那么这就是问题所在

在我的系统上,相同的程序不会导致问题-节点7.0.0和socket.io 1.5.1-但可能您的示例中没有包含所有代码(例如,
config.server.port
未定义,因此您似乎删除了一些可能与此相关的代码部分)

您可以看到在中使用的版本:

node_modules/socket.io/package.json
查看您自己的
package.json
,然后搜索一行,如:

"socket.io": "^1.4.8"
(就像我在GitHub上的一个项目中一样)查看随
npm install安装的版本,并在版本过时时更新版本。您还可能全局安装了
socket.io
模块

您可以使用让您知道您有过时的依赖项

您可以使用来帮助您使依赖项保持最新

(还可以添加一些信息,让您了解依赖项中的漏洞。)

更新 您发布了package.json,并且确实使用了旧版本的socket.io:

"socket.io": "0.9.16",
因此,当您运行
npm install
时,将安装此确切版本。当前版本为1.5.1-请参阅:

您可以更改版本并重新运行
npm安装
。如果代码与发布的代码完全相同,则不需要更改代码。如果有更多代码,请查看可能需要更改的内容

如果您使用CI测试,David和Greenkeeper,正如我上面所建议的,那么所有这些(更新版本、测试是否仍然有效等)基本上都会自动为您完成

如果您使用Snyk,正如我上面所建议的,那么您将知道您使用的socket.io版本存在严重性很高的漏洞,包括拒绝服务和远程内存暴露,而您现在的代码中存在这些漏洞。见:


因此,正如您所看到的,更新socket.io依赖项非常重要,原因不仅仅是弃用警告。

您的socket.io版本是:
“socket.io”:“0.9.16”,
-当前版本是1.5.1-请参阅,您可以更改版本,然后重新运行
npm install
。如果代码与发布的代码完全相同,则不需要更改代码。如果有更多代码,请参阅以了解可能需要更改的内容。@Yumyum请参阅,并解释如何在Linux上安装Node 6.7.0。我解释了如何从二进制文件或源代码安装。您应该能够安装正确的版本,没有问题。唯一棘手的部分是正确选择路径。我解释了所有的要点,太长了,无法评论。上师!!!杰出的令人兴奋的医生。它现在可以工作了,我在CentOS 7.2上有了并行的旧NodeJ和新NodeJ,它工作得非常好。请保存好您的精彩文档:@YumYumYum谢谢)我永远不会删除此文档。:)@YumYumYum如果您有/opt/node-6.7.0/bin/node,那么您也应该有/opt/node-6.7.0/bin/npm-运行
/opt/node-6.7.0/bin/npm-install forever-g
应该使用新节点和npm永久安装,但是如果您安装了二进制软件包,它可能不会安装在您想要的地方。运行
/opt/node-6.7.0/bin/npm config get prefix
,如果它不是
/opt/node-6.7.0
,而是其他的,那么您可能需要编辑/opt/node-6.7.0/bin/npm程序的第一行并更改
#/usr/bin/env节点
#/opt/node-6.7.0/bin/node
或作为
/opt/node-6.7.0/bin/node/opt/node-6.7.0/bin/npm运行npm