【问题标题】:how to solve async-readfile-problem with fs in express?如何在 express 中使用 fs 解决异步读取文件问题?
【发布时间】:2021-08-09 11:30:09
【问题描述】:

不幸的是,我在 js 知识方面与大多数人相距甚远,并且一次又一次地遇到问题,以同步顺序设计我的应用程序的工作流程! 主要的事情-我不明白以简单的方式设计像这样的readfile-code之类的东西-代码部分位于块下,执行某些操作和(在这种情况下)加载数据,在执行之前不要执行块完成 - 并且(就像在这种情况下)数据(sKey)保持未定义,尽管块本身的控制台确认它定义正确?! 可能是 EXPRESS 特有的东西 - 但这个 js 必须在 EXPRESS 中运行 - 任何建议都可能有帮助!

'''const fsBase = require('fs');
const fs = fsBase.promises;
const fn = async () => {
    const data = await fs.readFile('example.txt', 'utf8');
    console.log("in readfile: " + data);
//works perfectly
    return data;
};
sKey = fn();
console.log("after readfile: " + sKey);
//returns sKey undef'''

【问题讨论】:

标签: express async-await fs


【解决方案1】:

您应该在回调函数中获取数据,而不是尝试从返回语句中获取数据:

const fs=require('fs');

const fn = async () => {
    let data;
    await fs.readFile('example.txt', 'utf8',(err,data_)=>{
      data=data_;
    });
    console.log("in readfile: " + data);
    return data;
};
sKey=fn();
console.log("after readfile: " + sKey);

【讨论】:

  • fs.promises 方法不接受回调。
猜你喜欢
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-10
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 2010-12-22
相关资源
最近更新 更多