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

Node.js中使用module.exports跨文件获取inquirer输入的file值问题

问题解决方法

首先修正两个核心错误点:

  • 模块引入路径错误:你当前写的require("/inputs")是读取系统根目录的inputs文件,同目录下的文件引入需要使用相对路径,改为require("./inputs")
  • askingInputs返回值为Promise:inquirer的prompt方法是异步的,返回的是Promise对象,不能同步直接取值,需要使用异步方案(async/await或者.then回调)处理

修正后的file.js代码(async/await写法,更易读)

const fs = require("fs");
const inputs = require("./inputs"); // 修正引入路径

module.exports = {
  // 给方法加上async关键字支持await
  readingFile: async () => {
    // 等待用户输入完成,解构拿到返回的file字段值
    const { file } = await inputs.askingInputs();

    // 把拿到的file参数拼到读取路径中
    fs.readFile(`./files/${file}`, "utf8", (err, data) => {
      if (err) {
        console.error(err);
        return;
      }
      console.log(data);
    });
  },
};

可选回调写法(无需async)

const fs = require("fs");
const inputs = require("./inputs");

module.exports = {
  readingFile: () => {
    inputs.askingInputs().then(({ file }) => {
      fs.readFile(`./files/${file}`, "utf8", (err, data) => {
        if (err) {
          console.error(err);
          return;
        }
        console.log(data);
      });
    }).catch(err => {
      console.error('获取用户输入失败:', err)
    })
  },
};

注意:请确保inputs.js文件顶部已经引入了inquirer依赖,添加const inquirer = require('inquirer')代码,否则会抛出inquirer未定义的错误。

内容的提问来源于stack exchange,提问作者Ernesto Diaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:48:01