只发送指定的JavaScript文件到前端

我有一个这样的应用程序

/app /views index.jade /controllers controllers1.js controllers2.js server.js 

在server.js里面我使用app.use(express.static(path.join(__dirname, 'app'))); 所有请求都呈现index.jade。 在index.jade里面我用普通的<script>标签调用控制器。

我的问题

我把我所有的脚本展示给前端都感到不自在。 例如:我不希望人们inputwww.myurl.com/controllers/controllers1.js并查看脚本,因为我不想立即显示所有业务逻辑,特别是对于未login的用户。

取消激活express.static() ,是否有可能通过expression中间件来获取内容的一个JavaScript文件,并包括/发送到index.jade ? 理想情况下,我想控制前端可以接收/查看哪些脚本文件。

可能有很多方法来做到这一点。 我应该使用某种types的库(也许Requirejs,idk很多)?

停用express.static不是必需的

使用公用文件夹的所有内容,你想暴露给用户喜欢

应用

– >控制器

上市

– > JS

– > – >的jquery.js

– > – > abc.js

– > CSS

– > – > bootstrap.css

htmls在这里

并使用express.static(__ dirname,“公共”)来公开文件夹。

我使用的一个策略是分离公共和私人节点文件。 公共图书馆实施双重目的的节点/浏览器代码。 我使用的文件夹结构如下所示:

 /app /lib /public public_library.js private_library.js 

然后公开目录是很简单的,这样你就可以做到这两个:

 var mylib = require('public/public_library.js'); 

在你的节点文件和

 <script src="lib/public/public_library.js"></script> 

在你的浏览器中面临代码。

把你想要公开的所有库放到公共目录中。 把你想保持私有的所有图书馆放在公共目录之外。