Node.js + Express - 无法连接。 ERR_CONNECTION_REFUSED
Node.js + Express - Can't connect. ERR_CONNECTION_REFUSED
我遵循了这个基本示例:
http://shapeshed.com/creating-a-basic-site-with-node-and-express/
文件已生成...它们都在那里。我运行这一切都是一步一步来的。无论我使用哪种浏览器,我都会得到 "Unable to connect" (Firefox) 和 "This webpage is not available ... ERR_CONNECTION_REFUSED" (Chrome) - 它就是不工作。我检查了生成的 bin/www 文件,它似乎指示端口 3000。但是,在生成站点后 运行 "node app.js" 时,我得到了 no 输出.查看该文件后,我注意到它指向了我系统上错误的 Node 路径,因此我将其更改为正确的路径:
#!/usr/local/bin/ node
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('rwc:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = parseInt(process.env.PORT, 10) || 3000;
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error('Port ' + port + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error('Port ' + port + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
debug('Listening on port ' + server.address().port);
}
没有骰子。没有改变。 运行ning "node app.js"时无输出,拉不上去。我知道节点在那里并且安装正确,因为我已经 运行 一堆示例代码并稍微玩了一下。
开启 OS X Yosemite 但我的防火墙已关闭。
这是怎么回事?令人惊讶的是,在搜索时也发现了很少的信息——这让我犹豫要不要用 Node 构建任何严肃的东西。
你的问题是你正在学习的教程太旧了。随着时间的推移,Express 生成器已经极大地改变了它的结构。它现在使用 npm
到 运行 初始应用程序命令,如您所愿。 package.json
中的脚本对象对于抽象命令非常方便。
只需 cd
到您的示例应用程序和 运行:
npm start
您将在终端中看到以下内容:
$ npm start
> example@0.0.0 start /Users/your-user/example
> node ./bin/www
尽情享受吧!
除了设置之外,该教程的其余部分仍然非常准确。老实说,我会参考上面的 docs。不过只是我的意见。
最后 "I noticed it pointed to the wrong path for Node on my system, so I changed it to the correct one"。你应该把它改回去,否则它可能会失败。
此外,如果想保留服务器 运行 ,则使用 nodemon
nodemon bin/www
这将给出相同的 o/p :
[nodemon] 1.11.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node ./bin/www bin/wwww`
我遵循了这个基本示例:
http://shapeshed.com/creating-a-basic-site-with-node-and-express/
文件已生成...它们都在那里。我运行这一切都是一步一步来的。无论我使用哪种浏览器,我都会得到 "Unable to connect" (Firefox) 和 "This webpage is not available ... ERR_CONNECTION_REFUSED" (Chrome) - 它就是不工作。我检查了生成的 bin/www 文件,它似乎指示端口 3000。但是,在生成站点后 运行 "node app.js" 时,我得到了 no 输出.查看该文件后,我注意到它指向了我系统上错误的 Node 路径,因此我将其更改为正确的路径:
#!/usr/local/bin/ node
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('rwc:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = parseInt(process.env.PORT, 10) || 3000;
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error('Port ' + port + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error('Port ' + port + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
debug('Listening on port ' + server.address().port);
}
没有骰子。没有改变。 运行ning "node app.js"时无输出,拉不上去。我知道节点在那里并且安装正确,因为我已经 运行 一堆示例代码并稍微玩了一下。
开启 OS X Yosemite 但我的防火墙已关闭。
这是怎么回事?令人惊讶的是,在搜索时也发现了很少的信息——这让我犹豫要不要用 Node 构建任何严肃的东西。
你的问题是你正在学习的教程太旧了。随着时间的推移,Express 生成器已经极大地改变了它的结构。它现在使用 npm
到 运行 初始应用程序命令,如您所愿。 package.json
中的脚本对象对于抽象命令非常方便。
只需 cd
到您的示例应用程序和 运行:
npm start
您将在终端中看到以下内容:
$ npm start
> example@0.0.0 start /Users/your-user/example
> node ./bin/www
尽情享受吧!
除了设置之外,该教程的其余部分仍然非常准确。老实说,我会参考上面的 docs。不过只是我的意见。
最后 "I noticed it pointed to the wrong path for Node on my system, so I changed it to the correct one"。你应该把它改回去,否则它可能会失败。
此外,如果想保留服务器 运行 ,则使用 nodemon
nodemon bin/www
这将给出相同的 o/p :
[nodemon] 1.11.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node ./bin/www bin/wwww`