首页 > 解决方案 > 如何从 fs.readFile node.js 返回值

问题描述

我在 node.js 中的函数有问题

function function_1() {
    var fs = require('fs');

    fs.readFile('date.json', function(err, content) {
        if (err) throw err;

        var parseJson = JSON.parse(content);

        fs.writeFile('date.json', JSON.stringify(parseJson), function(err) {
            if (err) throw err;
        })
    })

    return parseJson;
}

我不知道如何从我的阅读功能中返回文件中的值。我尝试了很多事情,但我失败了。我只是从 node.js 开始。我会感谢每一个建议。

标签: javascriptnode.jsexpressweb

解决方案


首先,您可能希望将您的要求作为常量添加到文件的开头,这不是强制性的,但这是一个很好的最佳实践

const fs = require('fs');

接下来对于您的问题,只需在外部范围内声明一个变量并用文件内容填充它:

const fs = require('fs');  

function function_1() {
     var parseJson
     fs.readFile('date.json',function(err,content){
       if(err) throw err;
       parseJson = JSON.parse(content);
     })    
    
     return parseJson;
}

或者正如@Pointy 提到的,您可以只使用readFileSync不需要回调的:

const fs = require('fs');  

function function_1() {
     return JSON.parse(fs.readFileSync('date.json'));
}

推荐阅读