You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js读取文件返回Undefined问题求助

Node.js读取文件返回Undefined问题求助

嘿,我看了你的代码和问题描述,马上就发现了核心问题——你的readFile函数没有返回值!这就是为什么console.log(input)会输出undefined的原因。

咱们来拆解一下:你在try块里执行了data.toString(),但这行代码只是把读取到的Buffer转换成了字符串,却没有把这个结果返回给函数调用者。JS里的函数如果没有显式的return语句,默认就会返回undefined,所以你调用readFile()的时候自然拿不到文件内容。

修正后的代码

把函数里的转换操作改成返回语句,同时可以优化编码处理(直接指定utf8编码,省去手动转字符串的步骤):

const fs = require('fs');

function readFile(filePath) {
  try {
    // 直接指定utf8编码,读取后直接是字符串,无需再toString()
    const data = fs.readFileSync(filePath, 'utf8');
    return data;
  } catch (error) {
    console.error(`Got an error trying to read the file: ${error.message}`);
    // 出错时返回null,方便后续判断是否读取成功
    return null;
  }
}

const input = readFile('G:/My Drive/Visual Studio Code/Advent of Code/2022/day05.txt');
console.log(input);

额外提示:转成数组

如果你想把文件内容按行转成数组,可以在拿到input后做分割处理:

if (input) {
  // 按换行符分割成数组,同时过滤掉空行
  const fileArray = input.split('\n').filter(line => line.trim() !== '');
  console.log(fileArray);
}

关于你提到的“之前没问题现在突然不行”,大概率是之前的代码里有return语句,后来不小心删掉了;至于Google Drive的路径,只要文件是同步完成的,你现在的路径写法也没问题,应该不是这个导致的问题。

备注:内容来源于stack exchange,提问作者helloworld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 07:14:31