如何使用Express访问安全文件?

时间:2020-11-04 13:10:56

标签: express handlebars.js private secure-coding

nodeapp
   -public
            -CSS
                       -style.css
   -pictures
            -secretImage.png
   -views
            -index.hbs
            -login.hbs
            -profile.hbs
   -server.js

const staticFiles = path.join(__dirname, './public')
app.use(express.static(staticFiles))
app.set('view engine', 'hbs')

我将css保留在以html访问的公共目录中,如下所示: href =“ / css / style.css” 可以,但是我需要存储一些图片,这些图片仅对已登录的用户可用。如果我的图片位于图片文件夹中,如何访问它们?

1 个答案:

答案 0 :(得分:1)

您可以使用sendFile方法...

app.get('/picture/:pictureName', (req, res) => {
     const valid = /* Do your logic to grant access */

     if (valid === false) {
         return res.status(403).send('Not allowed')
     }

     res.sendFile('your file path')
})