2015-09-01 297 views
3

我是新來的節點和表達。我遵循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才能打開端口。 我在做什麼錯。 任何幫助將不勝感激。

+0

您是否配置了Web服務器(例如Apache或nginx)來爲您的Node.js服務器端點提供服務? –

+1

我沒有明白你的意思。 Apache,Nginx不應該被需要,因爲Node.js Express自己創建一個HTTP服務器。 – Jay

+0

由於您沒有在標準端口上提供應用程序,因此您需要在iptables規則中打開該端口,或者安裝代理(如Apache或nginx)以允許將請求重新路由到正確的端點。鑑於上述情況,我建議您將您的應用更改爲可通過網絡訪問的端口,然後您就不需要代理。 –

回答

0

爲您安裝了最先進的使用快速應用程序生成器最新版本,這可能是個好主意......根據我的經驗Rackspace公司

npm install express-generator -g 

express my_app 

cd my_app && npm install 

SET DEBUG=my_app:* & npm start 
+0

我已經完全按照您指定的方式完成了。我想知道 - 表達式生成器有什麼特別之處?此外,按照您的指示,我檢查了my_app文件夾中的app.js。現在,app.js完全不同,並且沒有定義端口號。在之前的情況下,默認端口號始終爲3000。由於端口號現在缺失,我將如何在瀏覽器中打開它? – Jay

+0

這很可能是建立一個現成的應用程序的最快和最有效的方式。端口號將在bin/www中 - 它將是3000.使用npm start運行應用程序,然後轉到瀏覽器並輸入127.0.0.1:3000。 –

相關問題