gpt4 book ai didi

node.js - 我正在创建一个静态 Node.js 服务器

转载 作者:太空宇宙 更新时间:2023-11-03 22:48:23 25 4
gpt4 key购买 nike

我正在创建一个静态的node.js 服务器,它只提供指定目录中的纯html、css 和javascript。我试图让服务器读取每个子目录并将 url 路由到它指定的文件。但是它只读取根目录。

var fs = require('fs');

var array = fs.readdirSync(__dirname);
function getAllSub(array){
for (i = 0; i < array.length; i++){
if (array[i].indexOf(".") == (-1))
{
array = array.concat(array[i] + "/" + fs.readdirSync(__dirname + "/" + array[i]));
}
if (array[i].indexOf("/") != (-1)){
var foldcon = array[i].substr(array[i].indexOf("/") + 1);
var folder = array[i].substr(0, array[i].indexOf("/"));
foldcon = foldcon.split(",");
for (n = 0; n < foldcon.length; n++){
foldcon[n] = folder + "/" + foldcon[n]
if (foldcon[n].indexOf(".") == (-1)){
console.log([foldcon[n]]);
foldcon[n] = getAllSub([foldcon[n]]);

}
}
array.splice(i, 1, foldcon);

}

}


return array;
}
array = getAllSub(array);
console.log(array);

现在,此代码读取目录并识别文件数组中的某个项目是否是文件夹,但它不会将子目录中的文件正确添加到数组中。现在它有点无限递归,我真的不知道如何阻止它。这并不是我真正要使用的东西,我只是认为这将是一个很好的项目,可以让我自己了解 Node.js 的基础知识

已编辑^

最佳答案

我知道已经晚了,但这是读取子文件夹中文件路径的递归解决方案的正确答案:

var fs = require("fs");

/**
* Recurse through a directory and populate an array with all the file paths beneath
* @param {string} path The path to start searching
* @param {array} allFiles Modified to contain all the file paths
*/
function readdirSyncRecursive(path, allFiles) {
var stats = fs.statSync(path);
if (stats.isFile()) {
// base case
allFiles.push(path);
} else if (stats.isDirectory()) {
// induction step
fs.readdirSync(path).forEach(function(fileName) {
readdirSyncRecursive(path + "/" + fileName, allFiles);
});
}
}

var allFiles = [];
readdirSyncRecursive("/path/to/search", allFiles);
console.info(allFiles);

关于node.js - 我正在创建一个静态 Node.js 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10367811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com