gpt4 book ai didi

javascript - 读取 json 文件并将特定数组附加到外部范围列表 - javascript - Nodejs

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

var dir = require('node-dir');
var path = require('path');
var fs = require('fs');

var root_directory = "C:/ProgramData/XXX/YYY/Resources/LocalLibrary";



function getitems(res, fileHandler){
dir.files(root_directory, function(err, files) {
if (err) throw err;
fileHandler(res, files);
});
};

function fileHandler(res, files) {
var finaldependency = [];
files.forEach(function (fileName) {
if (path.extname(fileName) === '.Item') {
var singleObj = {};
singleObj['key'] = fileName;
var content = fs.readFileSync(path.resolve(fileName), "utf8");
var json = JSON.parse(content);
singleObj['value'] = json.References;
finaldependency.push(singleObj);
}
});
res.json(finaldependency);
}


module.exports = function(app) {

// api ---------------------------------------------------------------------
// get all items
app.get('/api/item', function(req, res) {

// use mongoose to get all items in the database
getitems(res, fileHandler);
});

涉及的步骤:1.当收到请求时,处理root_directory中存在的所有文件(它包含许多嵌套子目录)2.借助node-dir模块获取所有文件的列表3. 将文件列表传递给异步fileHandler

我的问题?我正在做同步阻塞风格的文件处理(fs.readfileSync)!!!并将数据作为键值对附加到外部范围列表finaldependency

这是正确的做法吗?或者有没有优化的方法来做到这一点???

最佳答案

您的fileHandler函数可能需要很长时间,因此它可能会阻止客户端请求。随着客户端请求的增加,服务器在请求处理方面的性能可能会变差。

您可以尝试执行 process.nextTick 中的 forEach 循环。

关于javascript - 读取 json 文件并将特定数组附加到外部范围列表 - javascript - Nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30363496/

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