Javascript 以JSON格式格式化目录中的文件列表

Javascript 以JSON格式格式化目录中的文件列表,javascript,node.js,Javascript,Node.js,我被要求以JSON格式列出目录中的所有文件,这些文件将传递给jade模板。我如何异步地做到这一点 router.get('/', function(req, res, next) { res.render('index', { title: 'Advanced Solution Writer', pdf: JSON.parse( /*need to get all files inside directory foo*/)}); }); 我可以写一些类似于匿名函数的东西来

我被要求以JSON格式列出目录中的所有文件,这些文件将传递给jade模板。我如何异步地做到这一点

router.get('/', function(req, res, next) {
  res.render('index', {
    title: 'Advanced Solution Writer',
    pdf: JSON.parse( /*need to get all files inside directory foo*/)});

});
我可以写一些类似于匿名函数的东西来返回其中的文件列表吗?这是我试过的一段代码,它不起作用。我是node.js的新手

router.get('/', function(req, res, next) {
  res.render('index', {
    title: 'Advanced Solution Writer',
    pdf: JSON.parse(

        function() {
          const fs = require('fs');
          fs.readdir("./public/pdf", function (err, files) {
            if (err) {
              console.log(err);
            }
            return files;
          })
        }
    )});

});

readdir
回调中使用
res.render

var fs = require('fs');

router.get('/', function(req, res, next) {
    fs.readdir("./public/pdf", function(err, files) {
      if (err) {
        console.log(err);
      }

      res.render('index', {
         title: 'Advanced Solution Writer',
         pdf: JSON.parse(files)
      });
   });
});

你把它翻了个底朝天。异步方法要求您从读取文件列表开始,并在回调中呈现页面

大致如下:

const fs = require('fs');

router.get('/', function(req, res, next) {
  fs.readdir("./public/pdf", function (err, files) {
    if (err) {
      console.error(err);
      throw err; // To generate a 500 internal server error
    }
    res.render('index', {
      title: 'Advanced Solution Writer',
      pdf: JSON.parse(files)
    });
  });
});
我还建议作为回调的一种替代方法进行研究。承诺可以使代码流更清晰、更简单