javascript - 导出 PapaParse 函数的问题
问题描述
我是 JavaScripting 和 Node 的新手,我正在为我的第一个应用程序进行概念验证。我的目标是:
- 解析 CSV 文件(因为我想要的数据太小以保证数据库)
- 将解析后的数据加载到数组中
- 在数组中搜索特定的“日期”,这将有两个我可以从中提取数据的字段
- 将该数据作为导出函数呈现(如果不准确,请原谅我的措辞)
在以前同事的帮助下,我找到PapaParse
并lodash
帮助解析和搜索数据。如果我在同一个应用程序中调用该函数,则该应用程序运行良好。当我尝试导出函数时,我没有得到任何结果。我已经尝试自己解决这个问题两周了,希望有人能帮助我。
filename: newFOTD.js
var papa = require('papaparse');
var _ = require('lodash');
var fs = require('fs');
var csvfile = '../data/flavorDB.csv';
function flavorOfTheDay(date) {
papa.parse(fs.createReadStream(csvfile), {
header: true,
delimiter: ",",
complete: function(results) {
var match = _.filter(results.data, _.matches({'Date': (date)}));
match.forEach(function (flavorDB) {
if (flavorDB.Note.length != "") { /* eslint-disable no-console */
console.log("Today's flavor is " + flavorDB.Flavor + ". Did you know that today is also " + flavorDB.Note + "? How cool!");
} else console.log(flavorDB.Flavor);
})
}
})
}
flavorOfTheDay('2018-08-09');
module.exports.flavorOfTheDay = flavorOfTheDay
上面的效果很好。当我尝试访问导出的函数时,我没有得到任何数据。
filename: program.js
var test = require('./lib/newFOTD');
test.flavorOfTheDay('07-08-2018')
我一定是对 Papaparse 做错了,无法弄清楚它是什么。我可以在 Papaparse 逻辑之外的函数console.log(date)
内部放置一个简单的函数,当我从中调用该函数时,我将获得在控制台中传回的数据。我将不胜感激任何帮助或指出我正确的方向。我认为这将是一个简单的测试,让我可以进入下一阶段的概念验证,结果却变成了失眠和令人沮丧的几周,哈哈。谢谢你。flavorOfTheDay
'program.js'
date
解决方案
PapaParse 的问题是我如何为 CSV 文件声明变量以进行解析并需要使用path
它来使其工作。
正确的方式
filename: newFOTD.js
var path = require('path');
var csvfile = path.join(__dirname, '..', 'data', 'flavorDB.csv');
不正确/原始方式
filename: newFOTD.js
var csvfile = '../data/flavorDB.csv';
感谢David Boskovic帮助回答,我认为这是 PapaParse 代码的问题。一旦我认为这是代码问题,我在 Github 上打开了一个问题。将 Papaparse 调用为不返回数据的导出模块。
推荐阅读
- mattermost - Mattermost 无法打开对话框
- java - 尝试创建服务类时出现 NullPointer 错误
- c# - 如何在 xamarin 表单中使用异步更改更改 ui
- bash - bash:如何扭曲引号中的插值变量以将其(连同引号)作为参数传递给脚本中的另一个命令
- reactjs - 如何从状态中提取图像名称以用于文件池
- php - 致命错误:无法在第 9 行的表达式结果上使用 isset()(您可以改用“null !== expression”)
- c# - 为什么 Unity 在编辑器模式下使用 async/await 插件时会抛出 NullReferenceException?
- pyspark - 连接到启用 SSL 的 Kafka 代理以使用 pyspark 使用消息
- javascript - 从 Google 表单更新单元格后从 Google 表格发送电子邮件
- opengl - OpenGL VBO 定位内存消耗