2013-06-12 122 views
1

我已經閱讀了很多,這似乎是一個混淆了很多人的問題。我正在做一個快速項目,我不想給你任何誘人的引擎,我正在使用帶有下劃線的主幹,這對我來說已經足夠了。我想寫普通的HTML,並將其呈現..快速打開頁面

app.configure(function(){ 
    app.set('port', process.env.PORT || 3000); 
    app.set("view options", {layout: false}); 
    app.use(express.static(__dirname + '/views')); 
    app.set('views', __dirname + '/views'); 
    app.use(express.favicon()); 
    app.use(express.logger('dev')); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(express.cookieParser()); 
    app.use(express.session({ secret: 'topsecret' })); 
    app.use(passport.initialize()); 
    app.use(passport.session()); 
    app.use(app.router); 
    app.use(express.static(path.join(__dirname, 'public'))); 
}); 

這是我迄今爲止..我有一個很難理解如何明確知道要呈現index.html文件作爲我的主頁甚至雖然我有這樣的:

app.get('/', function(req, res){ 
    console.log("Heyyyyyy"); 
}); 

我希望沒有被渲染和「Heyyyy」來進行打印,但快遞呈現的index.html和犯規打印「Heyyyy」

回答

3

Express在計算中間件的順序他們被配置。

您的app.router之前有一個靜態文件處理程序。

__dirname + '/views'目錄中的index.html文件。

您的中間件堆棧底部還有一個靜態文件處理程序。靜態文件處理程序應該位於中間件堆棧的頂部。當它們位於中間件堆棧的底部時,每個請求都會不必要地處理所有的堆棧。例如,在提供靜態文件時,不需要運行express.bodyParser()

+0

謝謝,但現在的問題是「錯誤:無法找到模塊'html'」當我嘗試res.render('login.html') –

+0

您不必呈現html,只需發送它!請參閱[send express doc](http://expressjs.com/api.html#res.send) – brnrd

+0

如果您不使用模板,則不應該呈現html。只需將login.html放置在爲'express.static()'設置的路徑中,並確保'express.static()'出現在'app.router'之前。 – Daniel