我想在Express中爲用戶特定的靜態內容提供服務。這意味着,如果用戶登錄,他的私人靜態文件夾將以快遞服務。其他用戶不得訪問。如何在Express.js中提供用戶特定的靜態內容
我嘗試了以下(見下文),但靜態內容沒有被服務。實際上,這條路線似乎完全被忽略了,我得到了一條404.
我不確定我做這件事的方式是否正確,如果express能夠動態地提供不同的靜態文件夾。預先感謝您對此的看法。
下面的代碼(簡化):
routes.js:
express = require 'express'
router = express.Router()
router.use '/user/assets', (req, res, next) ->
if req.user
userpath = 'uploads/' + md5(req.user._id)
if not fs.existsSync userpath
fs.mkdirSync userpath
console.log "Created user directory at " + userpath
express.static(userpath)
next()
module.exports = router
index.js:
express = require 'express'
app = express()
app.use '/', require './routes'
圖片的標題說明:
的MD5是隻是一種逃避用戶標識中奇怪字符的方式,這是一個字符串。我知道有一種錯配的可能性,這種錯配很小,而我現在不想關心這種錯配。對解決嘗試時尚的一般安全性的擔憂值得讚賞。代碼是用CoffeeScript編寫的。
req.user
包含有效的用戶元素。
很好,謝謝! res.sendFile正是我所需要的。否則,它確實最終會變得怪異。 – Flaudre