meteor.js和npm需要fs

我很困惑,我需要使用fs包meteor.js fw。

从meteor版本0.6>我需要使用Npm.require是这样的:

var fs = Npm.require('fs'); 

但是当我这样做的时候出现一个错误:npm没有被定义

如何解决? 我试过mrt添加npm,但嗯…

顺便说一句:我有/ root / packages / npm

编辑我的代码是在这两个客户端/服务器端文件夹,所以我把它移动到一个服务器块

 var fs; if(Meteor.isServer) { fs = Meteor.require('fs'); } fs.writeFile(path + name,... GETTING ERROR: Cannot call a method writeFile of undefined 

求解好了我解决了错误,把整个内容包装到Meteor.isServer {…但是如果有人能从好奇心向我解释为什么它不像上面那样工作?

您需要在您的应用程序中添加package.js ,或者在使用Npm.require之前,通过Npm.depends明确指定依赖关系的智能包。 如果使用fs等内置npm包,则不需要Npm.depends或智能包,但仍然需要确保在服务器端而不是客户端使用它。

例如,请查看我的Meteor包的package.js文件,该文件包含有ShareJS: https : //github.com/mizzao/meteor-sharejs/blob/master/sharejs-ace/package.js

另见这篇文章: http : //shiggyenterprises.wordpress.com/2013/05/16/accessing-the-file-system-in-meteor/

这是Npm ,而不是npm ,在你的问题你使用两个。 Javascript区分大小写,请确保使用正确的Npm表单。

不要贬低,但是…你可能想要使用的另一种select是Meteor文件结构本身。 你可以绕过NPM并在meteor中使用你的资产 。 在Meteor中,私人文件夹中的东西可以通过var data = Assets.getText("example.txt").toString().split("\n"); 例如,如果您想将文档转换为一个字的数组。 这只是一个例子。 我不确定你需要做什么。 🙂

由于“fs”是节点的一部分,你可以简单地做: var fs = Meteor.require('fs');