如何防止Node.js / Express提供我的应用程序的源代码?

我从来没有想过,这将是一个与Node.js和Express的问题,但在一个疯狂的奇想,我决定在浏览器中input我的Node.js Express项目中的一个源文件的位置 – 如下所示:

http://www.mywebsite.com/mynodejsapp/app.js

令我非常惊骇的是 ,我的应用程序的源代码正好popup,公众可以看到。

那么,除此之外:如何在Node.js / Express中停止它?

我的设置代码非常简单:

var app = express(); app.configure(function() { app.use(express.static('/home/prod/server/app/public')); }); app.listen(8888); 

为了澄清,这是我的文件夹结构看起来像:

/home/prod/server/
/home/prod/server/app.js
/home/prod/server/public/

各种各样的用于公共访问的文件都在/public 。 我的所有服务器源代码位于/server/ ,而且我对Express的静态文件夹configuration的理解是,静态文件夹是Express快速从文件系统提供文件的唯一位置。

有任何想法吗?

从你发布的东西,它真的闻起来像你input的URL是由例如Apache / Nginx / …服务,你确实把你的节点应用程序在文档根。 在这个(以及类似的)案例中,答案很简单:

从不将任何源代码文件放在文档根目录或另一个HTTP可访问的文件夹中。 在你的情况下, /home/prod/server/app/public应该只包含客户端的东西(HTML,CSS,graphics,(缩小的)客户端JS),nginx不应该在这个文件夹上面有任何东西作为它的文档根目录。