Meteor私有子目录

19

我最近了解到 Meteor 的私有子目录。根据文档:“私有子目录是放置任何应该对服务器代码可访问但不应向客户端提供的文件的位置,例如私有数据文件。”由于我对Web开发一般都是新手,所以我的问题是:在私有子目录中拥有这些文件与仅在服务器子目录本身中拥有这些文件相比有什么优势? 服务器子目录不是私有的吗?例如,我定义了一些电子邮件模板,并在服务器子目录中设置了我的电子邮件登录信息,这些信息是否会暴露给客户端?任何澄清都将非常有帮助,谢谢!

1个回答

33
不,您在服务器目录中的代码是安全的。不同之处在于您如何使用/访问这些文件。服务器目录中的文件将在服务器上加载/执行,并且使用运行中应用程序中的文件系统也很难访问它们。位于private目录中的文件内容可以作为asset使用。有关完整详细信息,请参见http://docs.meteor.com/#assets
要注意的是,您的服务器代码并不在服务器目录中执行,而会有一个当前工作目录,在.meteor内部是一个临时构建目录。因此,如果您想使用例如fs节点包读取服务器目录中的文件,则需要先找到它。此外,任何新文件或文件更改都将触发Meteor重新启动应用程序。在某些情况下,您可能不希望出现这种情况。因此,private提供了一个处理不影响应用程序执行的文件的地方。
另一种思考方式是private是服务器端的public

当我使用服务器端方法(和fs节点包)创建目录或在“private”目录下添加文件时,例如:application-name/private/files/users/user-name/file.pdf,我的应用程序总是重新启动 - 我认为这不应该发生在“private”目录中? - Aaron
这是我在 Stack Overflow 上关于这个问题的提问链接:https://dev59.com/Gofca4cB1Zd3GeqPfS1I?noredirect=1#comment44597955_28105957 - Aaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接