node.js - 从目录中获取文件列表
问题描述
我有一个简单的应用程序,我在其中上传 .pdf 文件,然后使用 qpdf 对其进行加密。
快递中有我的“放置”路线。
app.put('/files', (req, res) => {
const file = req.body;
const base64data = file.content.replace(/^data:.*,/, '');
//make temp dir
fs.mkdtemp(path.join(os.tmpdir(), 'foo-'), (err, folder) => {
if (err) throw err;
console.log(folder);
//write file to local and temp
fs.writeFile(folder +'/' + file.name, base64data, 'base64', (err) => {
if (err) {
console.log(err);
res.sendStatus(500);
} else {
res.set('Location', folder +'/' + file.name);
res.status(200);
console.log('test: ' + folder +'/' +file.name);
res.send(file);
// paths
const src: any = (userFiles + file.name);
const dst: any = (folder + '/' + file.name);
//gen password and encrypt pdf
genPass(dst, src);
//List files from temp dir
// const filesInDir = fs.readdirSync(folder, { withFileTypes: true })
// .filter(item => !item.isDirectory())
// .map(item => item.name)
// console.log('files from tmp dir: '+filesInDir)
}
});
});
});
我在这里做几乎所有事情。第一代。temp dir 然后将文件写入本地和 temp,然后生成密码和 ecnrypt pdf。这一切都很好。
但现在我需要做出响应以列出所有文件。
我试图做这样的事情
app.get('/files', function (req,res) {
const filesInDir = fs.readdirSync(folder, { withFileTypes: true })
.filter(item => !item.isDirectory())
.map(item => item.name)
console.log('files from tmp dir: ' + filesInDir)
});
但出现错误:
找不到名称“文件夹”
当然因为“文件夹”在app.put里面
如何将此文件夹变量“导出”到app.get?
文件夹获得了临时目录的路径。
解决方案
为了在路线之间共享数据
app.post('/files', function(req, res){
app.set('filePath', dst);
});
app.get('/files', function(req, res) {
app.get('filePath');
});
供参考使用此链接
推荐阅读
- swift - 水平滚动视图在快速滚动期间上下跳跃
- android - Initializing LiveData from lateinit object
- powershell - Query and exclude softwares installed on remote computers
- python - Python:打印 4 个变量的排列
- android - How to hide activity if it's immediately being redirected
- c - 浮点数数组的总和返回不同的结果
- angular - 具有可变参数的角度路线导航
- php - 代码中的 PHP 解释器微优化
- excel - Excel Pain: Saved With Filters, Opened And file Was Half the Size
- c# - Cannot successfully iterate through AccountManagement.GroupPrincipal GetMembers Object