我正在尝试从文件夹中显示文件列表。 我的文件夹结构如下所示
发票 错误 2.已处理 3.未处理的
我已经创建了节点api,我在html页面上调用了它。代码相同如下
const fs = require('fs');
var express = require('express');
var cors = require('cors');
var app = express();
app.use(cors());
app.use(express.static(__dirname));
var flength;
var filename;
var currentFile;
var items = [];
var dir1 = 'Invoices';
var filepath = [];
var readFolder = function(dir1) {
var countt = function(filename) {
var currentFile = dir1 + '/' + filename;
fs.readdir(currentFile, (err, files) => {
flength = files.length;
var fileArrayList = [];
for (var f in files) {
var record = {
filename: files[f],
filepath: dir1 + '/' + filename + '/' + files[f]
}
fileArrayList.push(record);
}
items.push({
'file': filename,
'count': flength,
'files': fileArrayList
});
});
}
var ReadFirst = function(dir1) {
fs.readdir(dir1, (err, files) => {
for (var i in files) {
var filename = files[i];
var currentFile = dir1 + '/' + filename;
var stats = fs.statSync(currentFile);
if (stats.isDirectory()) {
countt(filename);
}
}
});
}
ReadFirst(dir1);
}
setTimeout(function(str1, str2) {
readFolder(dir1);
}, 1000);
app.get('/FileCount', function(req, res) {
res.send(items);
});
app.listen(4000);
console.log('Listening on port 4000');
当我添加或删除任何文件夹中的文件时,它没有反映在我的html page.need帮助中。
谢谢。答案 0 :(得分:0)
这种情况正在发生,因为你实现了这种方式。
您的客户端(HTML页面)请求服务器(NodeJS)API 一些数据。在这种情况下,它是文件夹中的文件列表。服务器根据当时文件的状态(加上Δ)发送响应。
您可以在HTML页面中显示这些结果。现在,HTML页面和后端服务器之间没有实时链接。这意味着在此点之后发生的任何更改都不会自动反映在页面中。
你可以在这里做两件事:
setTimeout
函数。这是一个设计问题,您的NodeJS API看起来很好。