Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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
Node.js 节点,反应,并发,EADDRINUSE::8000错误_Node.js_Reactjs_Express_Server - Fatal编程技术网

Node.js 节点,反应,并发,EADDRINUSE::8000错误

Node.js 节点,反应,并发,EADDRINUSE::8000错误,node.js,reactjs,express,server,Node.js,Reactjs,Express,Server,我正在尝试将NPM包与后端的Node/Express服务器同时使用,并在前端运行create react app的服务器。以下是package.json脚本: "scripts": { "start": "node index.js", "server": "nodemon index.js", "client": "yarn start --prefix client", "dev": "concurrently \"yarn server\" \"yarn client\"" }, 当我执

我正在尝试将NPM包
与后端的Node/Express服务器同时使用,并在前端运行
create react app
的服务器。以下是
package.json
脚本:

"scripts": {
"start": "node index.js",
"server": "nodemon index.js",
"client": "yarn start --prefix client",
"dev": "concurrently \"yarn server\" \"yarn client\""
},
当我执行
warn dev
时,我得到以下错误:

$ concurrently "yarn server" "yarn client"
$ nodemon index.js
$ yarn start --prefix client
[0] [nodemon] 1.17.5
[0] [nodemon] to restart at any time, enter `rs`
[0] [nodemon] watching: *.*
[0] [nodemon] starting `node index.js`
$ node index.js --prefix client
[1] events.js:183
[1]       throw er; // Unhandled 'error' event
[1]       ^
[1]
[1] Error: listen EADDRINUSE :::8000
[1]     at Object._errnoException (util.js:1022:11)
[1]     at _exceptionWithHostPort (util.js:1044:20)
[1]     at Server.setupListenHandle [as _listen2] (net.js:1367:14)
[1]     at listenInCluster (net.js:1408:12)
[1]     at Server.listen (net.js:1492:7)
[1]     at Function.listen
...
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about 
this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about 
this command.
当我使用lsof-I tcp:8000时,它不返回任何内容。我不知道还能做什么。感谢所有的帮助

以下是服务器代码:

const express = require('express');
const mongoose = require('mongoose');
const keys = require('./config/keys');
const cookieSession = require('cookie-session');
const passport = require('passport');
require('./models/User');
require('./services/passport');

mongoose.connect(keys.mongoURI);

const app = express();

// enable cookies
app.use(
  cookieSession({
    // cookie good for 30 days
    maxAge: 30 * 24 * 60 * 60 * 1000,
    // authenticate cookie
    keys: [keys.cookieKey]
  })
);
// tell passport to use cookies
app.use(passport.initialize());
app.use(passport.session());

// get the routes
require('./routes/authRoutes')(app);

const PORT = process.env.PORT || 5000;
app.listen(PORT);

无论我将端口更改为什么,它都会为该端口提供相同的错误。

好吧,您将执行两次
index.js
,启动服务器侦听端口8000,这当然会触发
错误:listen EADDRINUSE::8000

 concurrently "yarn server" "yarn client"
  • warn服务器
    运行
    nodemon index.js
  • 纱线客户端
    运行
    纱线启动
    ,执行
    节点索引.js

好吧,您正在执行两次
index.js
,启动服务器侦听端口8000,这当然会触发
错误:listen EADDRINUSE::8000

 concurrently "yarn server" "yarn client"
  • warn服务器
    运行
    nodemon index.js
  • 纱线客户端
    运行
    纱线启动
    ,执行
    节点索引.js

我通过运行以下命令解决了此问题:

killall node

我通过运行以下命令解决了此问题:

killall node


在您的package.json中将客户端脚本更改为此
“客户端”:“纱线--cwd客户端启动”
在您的package.json中将客户端脚本更改为此
“客户端”:“纱线--cwd客户端启动”
应该可以。你的服务器代码可以在这里提供帮助。用服务器代码编辑我用一种蹩脚的变通方法修复了它。我将脚本更改为:
“client”:“cd./client&&warn start”
如果它有效,我想…@MMelvin0581为什么不为客户端服务器使用两个端口?抱歉,伙计,我不太清楚你的意思。下面是一个关于连接到Node/Express服务器的教程。create-react应用程序应该在localhost:3000上运行,我设置的节点服务器在5000上运行,这就是为什么我不明白为什么会发生冲突。但是我已经开始工作了。你的服务器代码可以帮上忙。用服务器代码编辑我用一种蹩脚的方法修复了它。我将脚本更改为:
“client”:“cd./client&&warn start”
如果它有效,我想…@MMelvin0581为什么不为客户端服务器使用两个端口?抱歉,伙计,我不太清楚你的意思。下面是一个关于连接到Node/Express服务器的教程。create-react应用程序应该在localhost:3000上运行,我设置的节点服务器在5000上运行,这就是为什么我不明白为什么会发生冲突。但我已经成功了,明白了。我做的是最好的解决方法吗?有没有其他方法可以从
/client
目录调用
warn start
?我不知道您的服务器结构是什么,也不知道
/client/package.json的内容是什么。您可以直接运行
node client/index.js
而不是
cd
它是来自create react应用程序的package.json,未经修改。脚本:
“scripts”:{“start”:“react scripts start”,“build”:“react scripts build”,“test”:“react scripts test--env=jsdom”,“eject”:“react scripts eject”}
你所做的还不错,如果你喜欢它并且它可以工作,就去做吧。这只是为了开发,所以,像这样,它实际上应该可以工作(我现在使用的设置):
“scripts”:{“server”:“nodemon index.js”,“client”:“npm run start--prefix client”,“dev”:“concurrent\”npm run server\“,“npm run client\”,“prod”:“NODE\u ENV=production nodemon app.js”,
Gotcha。我做的是最好的解决方法吗?有没有其他方法可以从
/client
目录调用
warn start
?我不知道您的服务器结构是什么,也不知道
/client/package.json的内容是什么。您可以直接运行
node client/index.js
而不是
cd
它是来自create react应用程序的package.json,未经修改。脚本:
“scripts”:{“start”:“react scripts start”,“build”:“react scripts build”,“test”:“react scripts test--env=jsdom”,“eject”:“react scripts eject”}
你所做的还不错,如果你喜欢它并且它可以工作,就去做吧。它只是为了开发,所以,像这样它实际上应该可以工作(我现在使用的设置):
“scripts”:{“server”:“nodemon index.js”,“client”:“npm run start--prefix client”,“dev”:“concurrent\”npm run server\“,“npm run client\”,“prod”:“NODE\u ENV=production nodemon app.js”,