我沒有問題,例如我有一個解決方法。然而,理解和開發解決方法的過程突出了我在我的知識中的一個根本性差距(作爲一個自學成才的程序員,這發生了很多;-)!),我似乎無法找到答案將其插入任何地方。Node.js/Express路由到一個靜態文件的URL
標準的node.js /快速安裝使用,例如:
app.get('/index.htm', function (request, response) {
console.log("/index.htm");
});
app.get('*', function (request, response) {
console.log("*");
});
爲什麼當用戶直接連接到index.htm的(在輸入網址,雖然我還沒有嘗試點擊鏈接)確實沒有火?該頁面沒有問題。明顯的用例是在服務靜態頁面之前檢查用戶是否已通過身份驗證。
僅供參考,解決方法是將用戶傳遞給諸如「/ authenticated」(匹配正常)的路由,執行檢查然後重定向並基本阻止其他所有內容。
感謝教育我提前;-)
ň
UPDATE到Raynos'的問題 - 是的(忽略服務器/應用程序變量名稱不一致)。
// CREATE SERVER
var server = express.createServer();
server.configure(function() {
server.use(express.static(__dirname + '/public'));
server.use(express.logger());
server.use(express.errorHandler({dumpExceptions: true, showStack: true}));
// start of session stuff
server.use(express.cookieParser());
server.use(express.session({store: sessionStore, secret: 'secret', key: 'express.sid'}));
});
我現在發現,路由匹配優良,一旦你刪除的靜態文件,即在原來的例子,刪除的index.htm意味着控制檯現在日誌「將/index.htm」。
ň
感謝您花時間回答問題,但自從我問了這個問題後的5年以來,節點世界發生了很多變化,而您的回答雖然現在正確,但當時並非如此。 –