抱歉,我是NodeJS Express的新手。我想从文件夹中获取所有文件。我尝试了以下但不起作用,测试总是空字符串:
var express = require('express');
var router = express.Router();
var fs = require('fs');
router.get('/', function(req, res, next) {
var test = '';
const testFolder = './public/images';
fs.readdir(testFolder, (err, files) => {
test = files[0];
})
res.render('index', { title: 'Express', file: test });
});
基本上,我想从公共图像文件夹中获取所有文件名。
答案 0 :(得分:0)
此处的问题是res.render()
将在test
分配给files[0]
之前执行,因为fs.readdir
是异步进程。在调用回调之前,res.render
已被执行。而且,如果您尝试从文件夹中获取所有文件,则应传递files
数组。有关详细信息,请查看this。您可能想尝试以下代码。
var express = require('express');
var router = express.Router();
var fs = require('fs');
router.get('/', function(req, res, next) {
var test = '';
const testFolder = './public/images';
fs.readdir(testFolder, (err, files) => {
// test = files[0]; this will assign test to the first element of the array of file
test = files;
res.render('index', { title: 'Express', file: test });
})
});