1

我刚刚开始使用 Node.js,我遇到了一个问题,我只能在本地访问我的 Node 服务器。我在这里松散地遵循教程:http: //coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/

我将代码托管在 Apache 服务器共享上,尽管我已经让它在我的 win7 机器上本地运行。服务器共享托管实例运行良好,我可以用 lynx 在本地 ping 它,它运行良好。但是,当我尝试通过 hostname.com:3001 或 hostname.com:3001/wines 远程访问实例时,它只是超时。我的服务器日志显示该端口上的传入连接,但它似乎没有通过实例。

我尝试将实例从我的 Node 开发目录移动到 www 目录,认为这是一个权限问题,但这并没有帮助。我完全不熟悉使用 Apache,所以我可能缺少某种基本权限设置。该共享托管在 bluehost 上,物有所值。我检查了管理员设置,但找不到任何会阻止该端口的防火墙。

var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);

app.get('/', function(req, res){
        console.log('ping');
});
app.get('/wines', function(req, res){
        console.log('req @ /wines');
        res.send([{name:'wine1'},{name:'wine2'},{name:'wine foo'}]);
});

server.listen(3001);
console.log('listening to port ', server.address().port);
4

1 回答 1

1

为了在 bluehost 中工作,您首先必须拥有一个专用 IP 帐户(请参阅https://my.bluehost.com/cgi/help/405),然后您必须请求他们允许传入连接到端口 3001。

但是,我怀疑如果你想要 nodejs,你最好找一个新的托管服务提供商。

于 2012-12-19T20:28:27.613 回答