【发布时间】:2019-08-18 19:42:15
【问题描述】:
我正在尝试编写一个简单的 express/node.js 应用程序,该应用程序使用 csv 文件中的数据响应 GET 请求。我想读取这个 csv 文件来生成一个 javascript 对象(本质上是一个键值映射),然后使生成的映射可用于控制器中的 HTTP 请求处理逻辑。
我编写了一个读取 csv 文件并导出所需对象的模块,但我不确定如何确保:
- 此操作完成,对象在处理 HTTP 请求之前实际存在
- 文件操作仅在服务器启动时执行一次,而不是每个请求执行一次,从而导致大量开销
如何组织我的代码以在 express 应用的上下文中实现这些目标?
这就是我处理 CSV 文件的方式:
var myMap = {};
fs.createReadStream('filename.csv')
.pipe(csv())
.on('data', (row) => {
// Build javascript object
myMap[row['key']] = row['value'];
})
.on('end', () => {
console.log('Done.');
});
// Does this work?
module.exports = myMap;
【问题讨论】:
标签: javascript node.js csv express asynchronous