小编bsh*_*ets的帖子

如何在处理 HTTP 请求之前将 csv 文件同步加载到内存中

我正在尝试编写一个简单的 express/node.js 应用程序,该应用程序使用 csv 文件中的数据响应 GET 请求。我想读取这个 csv 文件来生成一个 javascript 对象(本质上是一个键值映射),然后使生成的映射可用于控制器中的 HTTP 请求处理逻辑。

我编写了一个模块来读取 csv 文件并导出所需的对象,但我不确定如何确保:

  1. 此操作完成且对象在处理 HTTP 请求之前实际存在
  2. 文件操作只在服务器启动时执行一次,而不是每次请求都会产生大量开销

我如何组织我的代码以在 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;
Run Code Online (Sandbox Code Playgroud)

javascript csv asynchronous node.js express

8
推荐指数
1
解决办法
4544
查看次数

标签 统计

asynchronous ×1

csv ×1

express ×1

javascript ×1

node.js ×1