有没有办法使用以斜杠开头的路径(例如/lib
( 访问绝对与我的 Express 应用程序的基本目录相关的目录?
router.get('/lib*', (req, res, next) => {
var path = req.path;
console.log(path) // ==> /lib/foo/bar
fs.readdir(path, (err, names) => {
if(err)
next(err);
});
});
这是我的文件树:
app
├── lib
| └── some files
├── app.js
└── router.js
访问/lib
路由时,fs 模块想要读取D:lib
目录。
不过我想访问D:(...)applib
。
如果路由器在另一个目录中,使用 __dirname 将不起作用 - 我想灵活一点
var path = require('path');
router.get('/lib*', (req, res, next) => {
var filepath = req.path;
console.log(path) // ==> /lib/foo/bar
fs.readdir(path.resolve(__dirname, filepath), (err, names) => {
if(err)
next(err);
});
});
您可以使用__dirname
来实现这一点。
取代
var path = req.path;
由
var filePath = path.join(__dirname, req.path);
应该给你完整的路径。您需要在请求模块中要求path
。