Как предотвратить Node.js/Express, обслуживающий исходный код приложения?

Я никогда не думал, что это будет проблемой с 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/, и мое понимание конфигурации "Быстрая статическая папка" заключается в том, что статическая папка - это единственное место, которое Express с радостью обслуживает файлы из файловой системы.

Любые идеи?

Ответ 1

Из того, что вы разместили, он действительно пахнет, как URL, который вы указали, обслуживается, например, Apache/nginx/... и вы поместили свое приложение node в корень документа. Ответ прост в этом (и любом подобном) случае:

Вы никогда не помещаете ни один из файлов исходного кода в корневой каталог документа или другую папку, доступную для HTTP. В вашем случае /home/prod/server/app/public должен содержать только клиентскую часть (HTML, CSS, Graphics, (minified) клиентская JS), а nginx не должен иметь ничего выше этой папки в качестве корня документа.