您好,我正在尝试使用带有NodeJS的“ fs”模块显示项目文件夹中的图像,我需要读取目录中的所有图像并循环运行它们才能显示它们,但是我不确定这是正确的方法还是好的方法。预先感谢您的帮助。
我将我的readdir(异步读取文件)插入了我的首页路由。
const express = require('express');
const router = express.Router();
const fs = require('fs');
router.get('/', function(){
fs.readdir('./assets/images/', (err, files) => {
if(err) {
throw err;
}
res.render('home', {
files: files
});
});
});
module.exports = _router;
显示了图像,但是我没有人问我是否以正确的方式进行了操作。请帮忙,谢谢!
答案 0 :(得分:1)
如果模板期望的是文件名数组,而这就是您要使用该模板呈现的内容,并且您希望在每次请求时都从目录中读取文件列表而没有任何缓存,那么这就是这种方式去做吧。
一些需要清理的问题:
您确实需要一些适当的错误处理。 if (err) throw err
是错误的错误处理。您需要发送对请求的响应,响应状态可能为500,并且可能希望记录错误。
看起来您没有为创建的路由器导出相同的变量。您正在创建router
,但正在导出_router
已清理代码:
const router = require('express').Router();
const fs = require('fs');
router.get('/', function(){
fs.readdir('./assets/images/', (err, files) => {
if(err) {
console.log("fs.readdir error: ", err);
res.sendStatus(500);
} else {
res.render('home', {files});
}
});
});
module.exports = router;