【问题标题】:Access node.js File System module in Meteor在 Meteor 中访问 node.js 文件系统模块
【发布时间】:2012-05-13 08:18:21
【问题描述】:

我正在创建一个网络应用程序,它将编辑存储在用户 HD 上的一些配置文件,并决定试一试 Meteor。

我想使用 Node.js 的文件系统模块来处理配置文件的 I/O,但我无法弄清楚如何包含该模块。经过一番搜索,我在 StackOverlow 上找到了以下代码,这应该允许我需要该模块:

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

但是,即使将它放在我的代码的 if(server) 部分中,我的应用程序仍然会抛出错误并告诉我“fs”未定义。

还有其他人遇到过这个问题吗?

【问题讨论】:

  • 我将您的确切代码放入 Meteor.startup 函数中,并且它起作用了。我能够使用 fs 对象来统计文件。您是从一个新项目开始工作,因此您可以确定没有其他复杂的事情?
  • 感谢您运行代码。我在一个新项目中尝试了相同的代码,但没有运气。也许我只是没有正确引用 require ......如果你不介意,你能分享你在哪里以及如何统计该文件吗?
  • gist.github.com/2591352 希望这会有所帮助。
  • @mwcz 您链接到的代码对您有很大帮助,谢谢!看起来这段代码一直有效 - 真正的问题在于我如何尝试将 fs 操作链接到客户端。
  • __meteor_boostrap__.require 调用现已弃用,取而代之的是 Npm.require - 请参阅 Akshat's answer,这是现在最好的调用。

标签: javascript node.js meteor


【解决方案1】:

从 0.6.0 开始,您需要使用 Npm.require

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

【讨论】:

  • 我看到只有 Npm 没有定义。有什么想法吗?
  • 您是在浏览器端 js 还是服务器端 js 上执行此操作?
  • 嗯...在集合文件夹中...我不确定它是服务器端还是客户端,但可能是服务器端?
  • 它可能同时在客户端和服务器端运行。此代码在客户端不起作用。尝试将您的代码放在if(Meteor.isServer) {..} 块中,看看错误是否消失
  • 嗯...是的,现在我有不同的问题嘿:P pastebin.com/hUe1fD6r
猜你喜欢
  • 2017-02-23
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-29
相关资源
最近更新 更多