我是新來的節點和表達。我遵循Pedro Teixeria出版的「Professional Node.js」一書的指示。我在託管在Rackspace Cloud中的CentOS服務器中安裝了Node.js。然後我安裝快車 -無法從瀏覽器連接到Node.js Express服務器
$ npm install -g [email protected]
此安裝快車2.5.11,我可以確認,與
$ which express
然後,我初始化我的應用程序,使用下面的命令
$ express my_app
這會使用默認文件創建一個文件夾my_app。最後它還告訴我要安裝依賴項,我使用以下命令來完成。進入my_app文件夾併發出命令
$ npm install
我編輯了routes/index.js文件。它現在是這樣的 -
/*
* GET home page.
*/
module.exports = function(app){
app.get('/', function(req, res){
res.render('index', { title: 'Express' });
});
};
我在路由中創建了另一個名爲users.js的文件。所以,我的路線/ users.js看起來像這樣
/*
* GET home page.
*/
module.exports = function(app){
app.get('/users/:name', function(req, res){
res.render('users/profile', { title: 'User Profile' });
});
};
然後我編輯的應用程序。裏邊my_app應用文件(即主應用程序文件夾)。 。我的應用程序現在看起來是這樣的 -
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes');
var app = module.exports = express.createServer();
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
require('./routes/index')(app);
require('./routes/users')(app);
app.listen(5124, function(){
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
});
現在,我開始用下面的命令服務器,my_app應用文件夾中 -
$ node app
我看到輸出「Express服務器偵聽端口5124在開發模式「
但是,當我打開我的瀏覽器並輸入URL 50.56.246.162:5124/users我看到Fifrefox報告」無法連接「 但我至少應該看到一些錯誤。說明說,它至少應該顯示「未能定位視圖」用戶/索引「,嘗試:等等等等等等。
由於我已經完成了所有上述從Linux shell作爲根,所以我也改變了權限,以便它可以從瀏覽器中查看。另外,我不認爲我必須編輯iptables才能打開端口。 我在做什麼錯。 任何幫助將不勝感激。
您是否配置了Web服務器(例如Apache或nginx)來爲您的Node.js服務器端點提供服務? –
我沒有明白你的意思。 Apache,Nginx不應該被需要,因爲Node.js Express自己創建一個HTTP服務器。 – Jay
由於您沒有在標準端口上提供應用程序,因此您需要在iptables規則中打開該端口,或者安裝代理(如Apache或nginx)以允許將請求重新路由到正確的端點。鑑於上述情況,我建議您將您的應用更改爲可通過網絡訪問的端口,然後您就不需要代理。 –