只发送指定的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>
在你的浏览器中面临代码。
把你想要公开的所有库放到公共目录中。 把你想保持私有的所有图书馆放在公共目录之外。