Express与节点

时间:2017-01-16 17:59:54

标签: javascript node.js express automation browser-sync

我对JavaScript世界很陌生,我想第一次构建我的开发环境我想要实现的应该是简单的......

我想运行Express服务器以及浏览器同步以进行热重新加载我没有使用gulp或grunt

但我一直收到这个错误:

Starting the application in the development mode...
[BS] Proxying: http://localhost:3000
[BS] Access URLs:
 ------------------------------------
    Local: http://localhost:3000
 External: http://10.111.234.196:3000
 ------------------------------------
[BS] Watching files...
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::3000

这是我的脚本在package.jason文件

中的样子
"scripts": {
"prestart": "babel-node buildScripts/startMessage.js",
"start": "npm-run-all --parallel security-check open:src",
"open:src": "babel-node buildScripts/srcServer.js & browser-sync start --proxy 'localhost:3000' --files 'src' --no-ui",
"security-check": "nsp check"
},
srcServer.js中的

import express from 'express';
import path  from 'path';
import open  from 'open';

const port = 3000;
const app = express();


app.get('/', function(request, response){
response.sendFile(path.join(__dirname, '../src/index.html'));
});

app.listen(port, function(err){
if(err){
console.log(err);
}else{
open('http://localhost:'+ port)
}
});

并且bs-config.js文件是我刚刚将其更改为false的默认文件

This question给了我提示使用代理,但我仍然得到那个我不知道为什么的错误...请赐教我想了解什么是错的

3 个答案:

答案 0 :(得分:0)

该错误意味着您已经在端口3000上运行了某些东西。可能是在不同窗口中运行的同一项目的另一个实例。 :)

答案 1 :(得分:0)

我遇到了类似的问题。看起来BrowserSync不再使用Express在同一个端口上了。我设法使用connect-browser-sync中间件在不同的端口上运行它们。

这是我的 server.js

nngraph

在端口3000上有一个Express服务器(没有页面自动重新加载)。在端口3001上,BrowserSync服务器通过页面自动重新加载提供相同的内容。

答案 2 :(得分:0)

我不知道为什么,但是没有npm-run-all浏览器同步会自动将端口转移到3001。尝试使用npm-run-all后,似乎没有自动转移端口。所以我认为您必须像这样指定它:

"browser-sync": "browser-sync start--proxy=localhost:3000 --port=3001 --files=views"

或者至少对我有用:)