基于Express.js文件系统的路由器



我只是想问,是否可以使用express.js路由进行基于文件系统的路由?类似Next.js的东西。

好吧,我不建议这样做,因为这可能是一个安全问题。然而,如果你真的想,这很容易做到。你可以只听app.get("*&"(。下面的例子:

let path = require("path")
let express = require("express")
let app = express()
let fs = require("fs")
app.get("*", (req,res) => {
let filePath = path.join(__dirname, "routes", req.path)
if(!fs.existsSync(filePath)) return res.sendStatus(404)
res.sendFile(filePath)
})
app.listen(80)

这将递归并加载可能存在于";"路线";文件夹(或任何子目录(。我用html做了这件事,所以我做了sendFile((,但我认为它也应该用.render((。

我强烈建议不要这样做,因为可能会让人们在试图获取的路径上捣乱,从而爬上你的目录结构。

https://www.npmjs.com/package/express-file-routing

试试这个。它列出了所有可用的文件,并仅为它们启用路由。这也支持路径参数。

相关内容

最新更新