Node.js Meteor 文件系统的问题



我试图弄清楚我从这个难题之间错过了什么。Node.js和Meteor.js。流星是建立在Node.js我知道这一点。但是流星不能正常工作与Node.js。要么我需要再做20步才能得到相同的结果,我不知道它们是什么。或者两者之间存在严重的错误。独立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);

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

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

解决方案:file.txt存储在项目的private文件夹中,并使用Assets.getText读取它。如果仍然希望使用fs中的函数来加载文件,可以使用Assets.absoluteFilePath检索绝对路径。

相关内容

最新更新