Javascript 以JSON格式格式化目录中的文件列表
我被要求以JSON格式列出目录中的所有文件,这些文件将传递给jade模板。我如何异步地做到这一点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*/)}); }); 我可以写一些类似于匿名函数的东西来
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)
});
});
});
我还建议作为回调的一种替代方法进行研究。承诺可以使代码流更清晰、更简单