我最近了解了流星私有子目录。根据文档:“私有子目录是服务器代码可访问但不向客户端提供的任何文件的位置,如私有数据文件。”我是Web开发的新手,所以我的问题是在私有子目录中将这些文件与服务器子目录本身相比有什么优势?服务器子目录不是私有的 - 例如我已经定义了一些电子邮件模板,我的电子邮件登录信息是在服务器子目录中的启动函数中设置的,这些是以某种方式暴露给客户端吗?任何澄清都会非常有用,谢谢!
答案 0 :(得分:33)
不,您在服务器目录中的代码是安全的。不同之处在于您如何使用/访问这些文件。服务器目录中的文件将在服务器上加载/执行,并且使用正在运行的应用程序中的文件系统也很难访问它们。 private
目录中的文件内容以资产的形式提供。有关详细信息,请参阅http://docs.meteor.com/#assets。
需要注意的是,您的服务器代码不会在您的服务器目录中执行,但会有一个当前工作目录,该目录是.meteor中的临时构建目录。因此,如果您想使用fs
节点包来读取服务器目录中的文件,则首先需要找到它。此外,服务器目录中的任何新文件或文件更改都将触发meteor重新启动应用程序。有些情况下您不希望这样。因此,private
为您提供了处理不影响应用程序执行的文件的位置。
考虑它的另一种方式是private
是服务器的public
对于客户端。