Javascript 如何在NodeJS中读取文件()?

Javascript 如何在NodeJS中读取文件()?,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我只是在研究Node.JS,我有一个问题 我必须读一个文件。我使用“fs”节点和“fs.readFile”func来实现。 这是一个密码 const fs = require('fs'); let input; fs.readFile('./'+config.file, (err, data) => { input = data.toString('utf-8'); }); console.log(input) //!!! it gives me 'undefined' res

我只是在研究Node.JS,我有一个问题

我必须读一个文件。我使用“fs”节点和“fs.readFile”func来实现。 这是一个密码

const fs = require('fs');
let input;
fs.readFile('./'+config.file, (err, data) => { 
    input = data.toString('utf-8');
});

console.log(input) //!!! it gives me 'undefined' result but i expect file's data
我不知道如何解决这个问题。只有我知道这是异步函数


希望您能帮助我:3

它是异步的,因此它将首先执行同步代码,这就是为什么输入仍然未定义。首先执行同步代码,然后执行异步代码。因为fs.readFile是异步的,所以它将在

这应该记录您的输入


有关异步代码的详细信息,请参见

,因为您的代码是异步的,所以将在文件读取完成之前记录您的变量。 您可以使用函数并返回承诺:


@RolandStarke您不知道是否存在这样的错误,因为它是断开的异步代码;非常感谢,但是id还不能解决我的问题。我只想在*之外使用'input'变量。这个东西包括。然后像同步代码一样
const fs = require('fs');
let input;
fs.readFile('./'+config.file, (err, data) => { 
    input = data.toString('utf-8');
    console.log(input)
});
const fs = require('fs');

function myReadFile() {
    return new Promise((resolve, reject) => {
        fs.readFile('myfile.txt', (err, data) => {
            if (err) reject(err);
            resolve(data.toString());
        });
    })
}

myReadFile().then((contents) => {
    console.log(contents)
});