node.js - 如何将文件内容复制到字符串中?

标签 node.js

我正在尝试将我在 Ruby 中完成的旧脚本“翻译”为 node.js。其中之一是关于 CSV 解析,我停留在第一步 - 将文件加载到字符串中。

这会将我的文件内容打印到控制台:

fs = require('fs');
fs.readFile("2015 - Best of.csv", 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }
  console.log(data);
});

但出于某种原因我无法将数据捕获到变量中:

fs = require('fs');
var x = "";
fs.readFile("2015 - Best of.csv", 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }
  x = x + data;
});
console.log(x);

如何将(函数的)“数据”变量存储到(全局)“x”变量中?

最佳答案

它正在工作。

问题是你在 x 被填满之前记录它。由于调用是异步的,x​​ 变量将只有函数内部字符串的内容。

还可以看到:fs.readFileSync函数。

但是,我建议您更加熟悉 Node 的异步功能。

试试这个:

fs = require('fs');
var x = "";
fs.readFile("2015 - Best of.csv", 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }
  x = x + data;
  console.log(x);
});

关于node.js - 如何将文件内容复制到字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33263457/

相关文章:

node.js - 在 Node.JS 中从自身内部杀死一个子进程

node.js - enyo 给我一个 "not allowed by Access-Control-Allow-Origin"。并且不会从 nodejs 服务器加载内容

eclipse - Node 和 ChromeDevTools 中的 V8 版本?

javascript - 尝试在异步函数中使用 bcrypt 散列密码

node.js - 如何断开 pg 模块中的池

node.js 和 socket.io 与 facebook 好友聊天

javascript - 动态确定要从数据库运行哪些 Nightwatch.js 测试

node.js - 为什么 process.env.FIRESTORE_EMULATOR_HOST 在测试环境中是未定义的?即使我已经运行了模拟器

node.js - 通过node.js和mongodb实现/使用quill的正确方法是什么?

javascript - 在nodejs中看不到对象的属性