我是新的nodejs和快速部署…
我想上传我的文件到我的Windows服务器机器,但我恐怕我的源代码可以检索使用一些url,如http:// myip:8080 / app.js
当我部署我的nodeJS应用程序时,我应该在哪里放置我的文件? 额外的问题:有谁知道我应该把我的用户名和密码数据库,而不是在源代码里面?
您需要确保Express服务器中没有path可以为您的源文件提供服务。 这通常很容易实现,只要确保您要提供的文件位于与源文件不同的位置,并且用于提供其他文件的方法不能用于获取源文件。
个人路线如:
app.get("/", function(req, res) { res.sendFile("/assets/index.html"); });
将只能提供这一个文件。
当你使用某种types的自动路由(如express.static()时,必须小心。 在这种情况下,您必须确保只公开一个包含公共资产(HTML文件,CSS文件,客户端JS文件等)的子目录,并且不会意外地允许任何你的服务器端源文件。
这通常可以通过简单地将公共资产分离到文件层次结构的不同部分来完成:
app.use(express.static("public"));
这将只提供您的应用程序目录中的public子目录中的文件。 所以,你可以有这样的结构:
/user /me /myApp (server-side source files are in here) /public (public client-side files are in here)
噢,不言而喻,您的服务器需要一般安全,以便其他方式(不通过您的快速应用程序),这将允许攻击者访问文件系统不能妥协。 除此之外,通常configuration一个防火墙,只允许端口80或443上的http请求从外部到达服务器。