我只是想問一下,是否可以使用 express.js 路由進行基于檔案系統的路由?像 Next.js 這樣的東西。
uj5u.com熱心網友回復:
好吧,我不推薦這樣做,因為它可能會成為一個安全問題。但是,如果您真的愿意,這很容易做到。你可以只聽 app.get("*")。一個例子如下所示:
let path = require("path")
let express = require("express")
let app = express()
let fs = require("fs")
app.listen(80)
app.get("*", (req,res) => {
let filePath = path.join(__dirname, "routes", req.path)
if(!fs.existsSync(filePath)) return res.sendStatus(404)
res.sendFile(filePath)
})
這會遞回并加載“routes”檔案夾(或任何子目錄)中可能存在的任何檔案。我用 html 做了這個,所以我做了 sendFile(),但是我相信它也應該與 .render() 一起使用。
我強烈建議不要這樣做,因為它可能會允許人們爬上您的目錄結構,并弄亂他們試圖獲取的路徑。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/386316.html
