我遵循了这个基本的例子:
http://shapeshed.com/creating-a-basic-site-with-node-and-express/
生成了文件......他们都在那里。我一步一步地运行它。无论我使用哪种浏览器,我都会收到“无法连接”(Firefox)和“此网页不可用... 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);
}
没有骰子。没有改变。运行“node app.js”时无法输出,无法将其拉出。我知道节点在那里并且已经正确安装,因为我已经运行了一堆示例代码并且稍微使用了它。
在OS X Yosemite上,但我的防火墙已关闭。
发生了什么事?令人惊讶的是,搜索此内容时发现的信息很少 - 这让我对使用Node构建任何严重的内容犹豫不决。
答案 0 :(得分:8)
您的问题是您所关注的教程非常陈旧。 Express发生器随着时间的推移极大地改变了它的结构。它现在利用npm
来运行初始应用程序命令。 package.json
中的脚本对象非常便于抽象命令。
只需cd
进入您的示例应用并运行:
npm start
您将在终端中看到以下内容:
$ npm start
> example@0.0.0 start /Users/your-user/example
> node ./bin/www
并享受!
除了设置之外,该教程的其余部分仍然非常准确。老实说,我会咨询上面的docs。只是我的意见。
最后“我注意到它指向我系统上Node的错误路径,因此我将其更改为正确的路径”。你应该改回来,否则可能会失败。
答案 1 :(得分:0)
此外,如果想让服务器保持运行,请使用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`