12

我从没想过这会是 Node.js 和 Express 的问题,但一时兴起,我决定在浏览器中输入我的 Node.js Express 项目中的一个源文件的位置——例如:

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

令我极度恐惧的是,我的应用程序的源代码立即弹出,所有人都可以看到。

所以,除此之外:我如何在 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/都位于 .

有任何想法吗?

4

1 回答 1

10

从您发布的内容来看,您输入的 URL 确实闻起来像是由例如 Apache/nginx/... 提供的,并且您确实将节点应用程序放在了文档根目录中。在这种(以及任何类似的)案例中,答案很简单:

永远不会将任何源代码文件放在文档根目录或其他 HTTP 可访问文件夹中。在您的情况下,/home/prod/server/app/public应仅包含客户端内容(HTML、CSS、图形、(缩小的)客户端 JS),并且 nginx 不应在此文件夹上方有任何内容作为其文档根目录。

于 2012-12-12T22:24:54.717 回答