Я пытаюсь обслуживать статический каталог динамически, добавляя параметр пути к URL.
Я могу нормально обслуживать каталог с помощью следующей строки, которая отображает html и подкаталоги в браузере без необходимости чтения файла и т. Д .:
app.use('/', express.static('/Users/virtuload-beta/backend/uploads/folder/subfolder/'))
Это помогло для тестирования, но яМне нужно, чтобы он был динамическим, поскольку я получаю имя каталога в зависимости от переменной пути из MongoDB, а затем обслуживаю каталог на основе URL.
Я пробовал несколько решений, это мое текущее:
app.use('/static', express.static(path.join(__dirname, '../uploads', )), serveRouter)
router.get('/:id', FileCtrl.servepath);
-FileCtrl.js:
const servepath = async (req, res) => {
try {
let id = req.params.id
Upload.findById(id)
.populate('Upload')
.select('relPath') //relPath = /folder/subfolder
.exec(function(err, upload) {
if (err) {
res.send(err)
} else {
const filepath = `${upload.relPath}`
console.log(filepath) //logs folder/subfolder
//parse http object coming from client
const urlObject = url.parse(req.url, true)
console.log(urlObject)
var myUrl = new URL(`http://localhost:8000/static/${filepath}`)
return myUrl;
}
})
} catch (e) {
console.error(e)
}
}
Я не получаю никакой ошибки, но она не работает.