node.js与Meteor的文件系统有关

时间:2016-08-07 09:30:59

标签: node.js meteor filereader file-writing

我试图找出我在这个谜题中缺少的东西。 Node.js和Meteor.js。 Meteor是基于Node.js建立的,我知道这一点。但Meteor与Node.js无法正常工作。要么我需要再做20个步骤来获得相同的结果,我不知道它们是什么。或者两者之间存在严重的错误。 Standalone Node.js运行下面的命令就好了。在Meteor上运行相同的命令会导致错误或未定义的结果。希望我有一个解决这个问题的原因,或者他们需要对此进行修补,以便它能够按照应该的方式工作。

examples #1 

var fs = require('fs');
fs.readFile('file.txt', 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }
  console.log(data);
});

example #2

var jetpack = require('fs-jetpack');

var data = jetpack.read('file.txt');
console.log(data);

example #3

 var fs = require ('fs');

 var readMe = fs.readFileSync('file.txt', 'utf8');
 console.log(readMe);

1 个答案:

答案 0 :(得分:0)

您不应该尝试加载这样的文件,因为您不知道文件夹结构是什么样的。 Meteor在开发和生产模式下从项目目录创建构建。这意味着即使项目文件夹中有file.txt,它也不会在构建中的同一位置结束(或者根本不包含在构建中)。

例如,您的代码尝试从开发构建文件夹.meteor/local/build/programs/server中读取该文件。但是,此文件夹不包含file.txt

解决方案:将file.txt存储在项目的private文件夹中,然后使用Assets.getText进行阅读。如果您仍想使用fs中的函数加载文件,则可以使用Assets.absoluteFilePath检索绝对路径。