2016-01-11 25 views
1

我正在寫一個「todolist」應用程序。在我的node.js的代碼,我使用的快遞,並給它進入我叫客戶文件夾:如何防止用戶使用快遞訪問客戶端html文件?

var app = express(); 

app.use(express.static(__dirname + "/Client")); 

在我客戶文件夾如下:

codeJS.js 
homepage.html 
Todolistpage.html 
style.css 
logo.jpg 

我怎麼能防止用戶輸入時無法查看我的Todolistpage.html文件localhost:3000/Todolistpage.html(不刪除Todolistpage.html from我的客戶端文件夾)?

(理想情況下後來我儘量只允許登錄的用戶才能觀看)

回答

1

它可能更容易,如果你不提供服務的文件和靜態處理它作爲視圖邏輯的一部分。因此,您只需從公共目錄中將其刪除,並使用app.get()router.get()中間件單獨處理它。有什麼原因需要靜態提供嗎?

1

你可以做這樣的事情:

var app = express(); 

app.get('/Todolistpage.html, function(req, res) { 
    return res.status(401).end(); 
}); 

app.use(express.static(__dirname + '/Client'); 

這並不理想,因爲你必須隨時改變它的文件名變化,必須爲每個文件單獨做到這一點。

你也可以有一個不同的目錄/secure和一些中間件的用戶身份驗證,如:

app.use('/secure', someAuth, express.static(__dirname + '/secure')); 

甚至...

app.use('/secure', someAuth, express.static(__dirname + '/Client/secure')); 

,但似乎混淆了我。