2017-01-16 112 views
0

快递结合我是很新的JavaScript的世界,我试图建立我的开发环境,第一次是我想要达到的要简单...与浏览器同步与节点

我想与浏览器同步热重装我不使用一饮而尽或咕噜一起运行Express服务器

,但我不断收到此错误:

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文件是我刚换的UI false

This question给我使用代理的提示默认的,但我仍然拿到错误,我不知道为什么?请赐教我想知道什么是错的

回答

0

该错误意味着你已经拥有的东西飞奔g在端口3000上。可能是在不同窗口中运行的同一项目的另一个实例。 :)

+0

我杀死节点的所有实例,并再次尝试所有我得到的是在浏览器上的无限加载和控制台上的错误...和BTW是具有明确和浏览器同步一起一下就吸引了我的逻辑罚款我的浏览器同步是否能够保持热重新加载功能,即使共享有替代方案? – shuzo

+0

它终于工作了!但它在不同的端口,所以现在我有两个选项卡打开一个3000和另一个3001如何获得同一端口? – shuzo

0

我面临类似的问题。看起来像BrowserSync不再与同一端口上的Express一起使用。我设法在连接浏览器同步中间件的不同端口上运行它们。

这是我server.js

var express = require('express'), 
    bodyParser = require('body-parser'), 
    http = require('http'), 
    path = require('path'), 
    cors = require('cors'); 


// Express server 
var app = module.exports = express(); 
app.set('port', process.env.PORT || 3000); 


// BrowserSync at development host 
if (app.get('env') === 'development') { 
    var browserSync = require('browser-sync'), 
    var bsconf = { 
     host: 'localhost', 
     port: 3001, 
     https: false, 
     notify: false, 
     open: false, 
     online: false, 
     ui: false, 
     server: { 
      baseDir: path.join(__dirname, '/public') 
     }, 
     files: [path.join(__dirname, '/public/**/*.{html,css,js,json}')] 
    }; 
    var bs = browserSync.create().init(bsconf); 

    app.use(require('connect-browser-sync')(bs)); 
} 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.use(cors()); 


// Route index.html 
app.get('/', function(req, res) { 
    res.sendFile(path.join(__dirname, 'public', 'index.html')); 
}); 


// Starting express server 
http.createServer(app).listen(app.get('port'), function() { 
    console.log('Listening on port ' + app.get('port') + '...'); 
}); 

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