Node.js NodeJS Express枚举文件夹中的文件

Node.js NodeJS Express枚举文件夹中的文件,node.js,express,Node.js,Express,对不起,我是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/

对不起,我是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 });
});

基本上,我想从公共图像文件夹中获取所有文件名

这里的问题是
res.render()
将在
test
分配给
文件[0]
之前执行,因为
fs.readdir
是异步过程。在调用回调之前,执行
res.render
。此外,如果您试图从文件夹中获取所有文件,则应传递
files
array。有关更多信息,请查看。你可能想试试下面的代码

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 });
    })


});

仍处于节点上的学习曲线上。谢谢你的帮助。