首页 > 解决方案 > Node js App显示文件夹文件

问题描述

我正在尝试显示文件夹中的文件列表。我的文件夹结构如下

发票 1. 错误 2. 已处理 3. 未处理

我已经为我在我的 html 页面上调用的相同创建了节点 api。相同的代码如下

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 页面上。需要帮助。

谢谢你。

标签: node.js

解决方案


发生这种情况是因为您实现这一点的方式。

  1. 您的客户端(HTML 页面)向服务器 (NodeJS) API 请求一些数据。在这种情况下,它是文件夹中的文件列表。服务器根据当时的文件状态(加上Δ)发送响应。

  2. 您在 HTML 页面中显示这些结果。现在,您的 HTML 页面和后端服务器之间没有实时链接。这意味着在此之后发生的任何更改都不会自动反映在页面中。

  3. 你可以在这里做两件事:

这更多是一个设计问题,您的 NodeJS API 看起来不错。


推荐阅读