module.exports 返回未定义

2024-04-04

我目前是新来的Node JS,今天我试图read文件中的数据data.json.

这是 JSON 文件:

{"username":"rahul_v7","password":"9673"} {"username":"7vik","password":"3248"} {"username":"pradypot_2","password":"6824"} {"username":"ad_1","password":"9284"} {"username":"premchand_4","password":"4346"} 

而且,我正在使用文件中存在的以下代码GetData.js,读取存在的数据data.json:

'use strict';
const fs = require('fs');

let res = '', resObjs = [];
let fin = fs.createReadStream('F:/RahulVerma/NodeJS/data.json', 'utf-8');
fin.on('data', data => {
    if(data.length > 0) res += data;
}).on('end', () => {
    if(res.length > 0) {
        let resArr = res.trim().split(' ');

        for(let i = 0; i < resArr.length; i++) {
            resObjs.push(JSON.parse(resArr[i]));
        }

        module.exports.objects = resObjs;
    }
});

如你所见,我是出口 the resObjs数组,实际上是一个对象数组,到另一个名为AppendData.js,如下所示:

'use strict';
const fs = require('fs');
const getObjs = require('./GetData');

console.log(getObjs.objects);

但是,当我跑步时AppendData.js in Node.js 9.3.0 (ia32),它给出以下output:


您试图在对象被读取之前使用它们。请记住,读取流的代码会运行异步地,并且代码中没有任何内容尝试将其与模块加载进行协调。所以AppendData.js没有看到objects导出,因为在该代码运行时它还不存在。

相反,返回一个promise的对象AppendData.js可以消费;看***评论:

'use strict';
const fs = require('fs');

// *** Export the promise
module.exports.objectsPromise = new Promise((resolve, reject) => {
    let res = '', resObjs = [];
    let fin = fs.createReadStream('F:/RahulVerma/NodeJS/data.json', 'utf-8');
    fin.on('data', data => {
        if(data.length > 0) res += data;
    }).on('end', () => {
        if(res.length > 0) {
            let resArr = res.trim().split(' ');

            for(let i = 0; i < resArr.length; i++) {
                resObjs.push(JSON.parse(resArr[i]));
            }

            resolve(resObjs); // *** Resolve the promise
        }
    }).on('error', error => {
         reject(error);       // *** Reject the promise
    });
});

注意我添加了一个错误处理程序。

进而:

'use strict';
const fs = require('fs');
const getObjs = require('./GetData');

getObjs.objectsPromise
    .then(console.log) 
    .catch(error => {
        // Do something
    });

再次注意错误处理程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

module.exports 返回未定义 的相关文章

  • jQuery-UI 的自动完成显示效果不佳,z-index 问题

    我目前正在我的客户网上商店中实现 jQuery UI 的自动完成功能 问题是 自动完成所在的元素的 z 索引高于自动完成的 z 索引 我尝试手动设置自动完成 z index 但我感觉 jQuery UI 正在覆盖它 事实上我的问题是重复的自
  • 如何阻止 HTML 输入字段中的特殊字符? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是想问一下如何在html输入字段中阻止 等特殊字符 为什么不使用html5呢
  • 使用字符串函数查找周期字符串

    我正在寻找一种方法来检查字符串是否是周期性的或不使用 JavaScript 要匹配的示例字符串可以是11223331122333 然而 10101不应该匹配 来自 python 我使用了 RegEx 1 但速度相当慢 有没有任何字符串方法可
  • 单击浏览器后退按钮时,将用户带回到他们在上一页滚动到的位置

    当用户按下浏览器中的后退按钮时 是否可以将用户带回到他们向下滚动到的页面区域 如 pageA 是屏幕大小的两倍 因此您必须滚动才能阅读更多内容 您单击 pageA 上的链接转到新页面 pageB 阅读后 您在浏览器中单击 返回 现在 当您返
  • 如何在 Rollup 中配置从多个输入文件仅生成单个输出文件?

    配置Rollupjs生成库时 如果输入是由多个javascript文件组成的数组 我们如何才能将这些输入生成为一个输出 js 文件呢 export const lgService input src app services livegiv
  • 如何从主体上的 onClick 事件获取鼠标单击的绝对位置?

    我试图获取鼠标单击相对于浏览器 主体的绝对位置 顶部和左侧 not主体内的任何父元素 我有一个绑定到 body 的侦听器 但 e pageX 和 e pageY 为我提供了相对于 div 的位置 请注意 我可以利用 jQuery 和 YUI
  • 如何使错误冒泡,以便可以在同一个 try/catch 块中捕获它们?

    我有一个带有抛出错误的函数的对象 myObj ini function this f f function throw new Error 但我只想捕获创建对象的异常 try var o new myObj catch err alert
  • 音频端播放新文件

    我有一个webapp https radio repjesus com当您使用 ajax jquery 单击链接时加载并播放音轨 一切正常 但当曲目结束时 曲目将设置为循环 并且这种情况可以永远持续下去 我希望播放器从数据库中自动加载随机曲
  • Ember 模型中的自定义请求 url

    我正在尝试将 Ember 数据与已构建的 REST api 一起使用 它适用于顶级路由 例如我在 api 端有课程路由 如下所示 app get courses app controllers courses findAll app get
  • 在 Angular 中将图像 url 转换为 base64

    我正在努力尝试将给定的图像 url 转换为 base64 在我的例子中 我有一个带有图像路径的字符串 var imgUrl assets logoEmpresas empresa logoUrl 我如何直接将给定的图像网址转换为base64
  • 如何在alert()之后给予focus()?

    我有类似的东西
  • 使用PM2时如何配置master进程

    我在 NodeJS 中遇到 PM2 问题 如果没有 PM2 我们总是有如下几行代码来配置主进程 if cluster isMaster master process configuration else worker process con
  • 无法读取未定义的属性“messageHandlers”

    我想将 JavaScript 变量传递给 Swift 我在 JavaScript 中遇到错误并进行了搜索 但没有得到任何结果 错误是 类型错误 无法读取未定义的属性 messageHandlers 任何人都可以帮忙吗 我在 Xcode 中的
  • 在 JavaScript 中给变量字符串加上引号

    我有一个 JavaScript 变量 var text http example com 文本可以是多个链接 如何在变量字符串周围放置 例如 我希望字符串看起来像这样 http example com var text http examp
  • 设备收到 GCM Android 通知但未显示

    尽管通知已在应用程序本身中注册 但我的 Ionic Android 应用程序的 GCM Cloud 消息通知未出现在我的设备的主屏幕中 我正在使用 npm 模块node gcm https www npmjs com package nod
  • JavaScript 排序列表

    Javascript 或 jQuery 中有排序列表吗 我有一个巨大的列表 随着时间的推移 插入操作很少 每次添加单个项目时 我无法为整个列表调用 object sort 我需要插入 o log n 不 没有 你拥有的只是Array sor
  • 删除鼠标悬停时的 Vue 自定义过滤器

    我想使用 VueJS 2 删除鼠标悬停时的截断过滤器 这是模板中的过滤器 div class eng word english truncate div 这是过滤器本身 filters truncate function value let
  • 如何从对象 URL 获取文件或 blob?

    我允许用户通过拖放和其他方法将图像加载到页面中 当图像被删除时 我正在使用URL createObjectURL转换为对象 URL 以显示图像 我不会撤销该网址 因为我会重复使用它 所以 当需要创建一个FormData对象 以便我可以允许他
  • 如何提交表单 onkeyup 操作

    我正在尝试保存表格onkeyup行动 我是 jQuery 新手 这可能吗 我很感激任何帮助 编辑1 保存表单意味着保存到服务器 有没有办法增加0 2秒的延迟 此代码将在 keyup 上提交您的表单 element bind keyup fu
  • 推荐的增长缓冲区的方法?

    假设我正在 Node js 中构造一个可变长度的字符串或一系列字节 buf write 的文档说 https nodejs org api buffer html buffer buf write string offset length

随机推荐

  • 使用 Rails 设计首次登录

    如何在自定义会话控制器上确定用户是第一次登录 我希望能够创建会话并重定向到welcome index如果是第一次 否则它将被重定向到root url 我的代码如下 class MysessionsController lt Devise S
  • Java Logger:无法在 logger.properties 文件中设置日志级别

    我有一个使用maven 构建的java 项目 我在用java util logging Logger在我的项目中并想使用logger properties文件 不是命令行 我创建了一个logger properties像这样的文件 hand
  • 如果没有观察到状态,虚拟 DOM 实现与 createDocumentFragment() 有何不同?

    虚拟 DOM 是 DOM 的轻量级副本 在将其插入实际 DOM 之前在本地进行维护 缓存 我们可以根据需要更改它 然后保存到我们真实的 DOM 树中 它使用高效的 diff 算法来来回更新更改和其他用例 这一切都是为了避免直接操作 DOM
  • 使用 API Gateway 处理 AWS Lambda 函数中的错误

    每次我遇到语法错误或者我只想在 AWS Lambda 函数中发送自定义错误时 我都会收到相同的 502 Bad Gateway 响应 内部服务器错误 我尝试了这个简单的代码 module exports saveImage event co
  • 引发了“System.OutOfMemoryException”类型的异常。为什么?

    我有一个动态查询 返回大约 590 000 条记录 第一次运行成功 但再次运行时 我不断收到System OutOfMemoryException 发生这种情况的原因有哪些 错误发生在这里 public static DataSet Get
  • 让 tesseract 只识别数字

    我正在尝试改进我制作的 OCR 程序来读取我正在使用的某个图像的布局 现在 我希望我的 OCR 程序只能识别数字 0 9 我尝试遵循问题的解决方案 限制 tesseract 正在寻找的字符 https stackoverflow com q
  • 更新Cesium回调属性导致实体闪烁

    这是一些可以粘贴到铯沙堡中的代码 它将一个实体添加到地图中 然后每秒更新位置属性的 CallbackProperty 每次更新时实体都会闪烁 var viewer new Cesium Viewer cesiumContainer var
  • 如何使用 Swift 从 URL 获取 HTML 源代码

    我需要查看某个 URL 给出的页面的 HTML 如果我有这个 使用 Swift 获取该 URL 的 HTML 源的最有效和同步的方法是什么 我无法在网上找到一种简洁的方法将其返回到变量中 而不是将其打印在completionHandler
  • React Native,更改 React Navigation 标题样式

    我正在实施反应导航 https reactnavigation org在我的 React Native 应用程序中 我想更改标题的背景和前景色 我有以下内容 Sample React Native App https github com
  • 终结者:如何在拆分窗格中打开选项卡

    每当我尝试创建新选项卡时 它总是在窗口级别打开 我想要实现的是在我正在使用的当前活动拆分窗格中打开一个选项卡 可以这样做吗 我在过去的三四年里一直在使用终结者 但我还没有看到你所要求的可能 话虽这么说 您可以在此处提交功能请求 https
  • Magento - 公共产品页面中的 404 错误

    我有一个 Magento 1 7 网页宽度 2 个不同语言的商店 每个商店的宽度不同 当我为第二个商店启用产品时 第二个商店的公共产品页面停止运行 现在出现了 404 错误 但第一家商店的产品页面仍然表现良好 所有其他页面均正常工作 htt
  • 无法从命令行运行 swing

    我使用Windows中的命令行来编译然后执行我的java程序 我去了http java sun com docs books tutorial uiswing start compile html http java sun com doc
  • 对所有当前播放的视频执行一个 AVPlayer 的 AVPlayerItemDidPlayToEndTime 操作

    问题 在有播放器的集合视图单元格中 如果我同时播放两个视频并寻找第一个视频结束然后AVPlayerItemDidPlayToEndTime发射了两次并且两个视频都重新启动 在集合视图单元格中我有 override func awakeFro
  • SQL 到 outfile - 文件存储在哪里? (MySQL、Windows)

    我正在使用 MySQL 并希望将以下查询的结果存储在我的计算机本地的 csv 文件中 SELECT INTO OUTFILE mysqlresults csv FIELDS TERMINATED BY OPTIONALLY ENCLOSED
  • 当给定这个模式与整数值匹配时,为什么 scala 会抱怨?

    Goal 编写一个函数 生成一个排除指定字符 由索引标识 的新字符串 Example takeAllExcept 0 abc 回报bc takeAllExcept 1 abc 回报ac takeAllExcept 2 abc 回报ab 我最
  • Visual Studio 2010 - 推荐的扩展[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 启动时加载 FastAPI 项目中的模型

    所以我目前正在开发一个为多种 NLP 服务提供服务的 FastAPI 项目 为此 我想提供来自 spacy 和 Huggingface 的不同模型 自从那些模型相当大的推理时间为每个发布请求加载模型相当长 我的想法是在 FastAPI 启动
  • 如何更改handleError?

    我有 jquery 脚本 它应该向我的文件发送响应 如果一切顺利 我会成功 但如果错误 我应该得到错误函数 但我得到jQuery handleError is not a function jQuery handleError s xml
  • 为 Python 3 安装 ipdb? [复制]

    这个问题在这里已经有答案了 我安装了ipdb https pypi python org pypi ipdb using pip 但我仍然得到 ImportError No module named ipdb 我还需要做其他事情才能引入这个
  • module.exports 返回未定义

    我目前是新来的Node JS 今天我试图read文件中的数据data json 这是 JSON 文件 username rahul v7 password 9673 username 7vik password 3248 username