gpt4 book ai didi

javascript - 如何从 node.js 路由中的内部函数内部获取参数到以下范围

转载 作者:行者123 更新时间:2023-12-03 02:20:04 26 4
gpt4 key购买 nike

我从 NPM 包 node-dir 获得了下面的代码,该代码工作正常,因为它读取一个目录,然后读取该目录中的每个文件并将其吐回到控制台。我真正想要的是使用 JSON.stringify 发送它,这样我就可以执行 ajax 或 $.getJSON 调用将其呈现到 UI,以便我可以根据数据构建报告。

我明白了问题所在,文件参数位于第二个函数范围内。因此,当我尝试对文件执行 req.send 时,它说文件未定义。如果我尝试将 req.send 放在函数内部,它会说 req 未定义,或者如果我将 req 作为参数传递,它会说 req.send 不是函数,因为该函数存储在 router.get 中。

我希望使用当前代码找到一个简单的解决方案,或者是否有更好的方法?我相信它可能与 .apply() 有关,或者可能与某种回调或 promise 有关?抱歉,我对这种函数式编程还是菜鸟。

router.get("/api/all/reports", (req, res) => {
const pathToDir = path.resolve(__dirname, "../../", "automation_projects/fcsf/results/");
dir.readFiles(pathToDir,
function(err, content, next) {
if (err) throw err;
console.log('content:', content);
next();
res.send(JSON.stringify(content));
},
function(err, files){
if (err) throw err;
});

});

最佳答案

router.get("/api/all/reports", (req, res) => {
let fileContent = "";
const pathToDir = path.resolve(__dirname, "../../", "automation_projects/fcsf/results/");
dir.readFiles(pathToDir,
function(err, content, next) {
if (err) throw err;
console.log('content:', content);
fileContent += content;
next()
},
function(err, files){
if (err) throw err;
res.send(JSON.stringify(fileContent));
});

});

请告诉我它是否有效。我认为应该是 res.sendres.json(非强制)

请小心处理大文件内容。您需要使用 res.pipe 或任何streaming 功能来实现

关于javascript - 如何从 node.js 路由中的内部函数内部获取参数到以下范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49197603/

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