我有这样的应用
/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>
代码调用控制器。
我的问题
将所有脚本暴露给前端我感到很不舒服。例如:我不希望人们键入www.myurl.com/controllers/controllers1.js并查看脚本,因为我不想立即显示所有业务逻辑,特别是对于未登录的用户
问题
停用express.static()
后,是否可以通过快速中间件获取某些javascript文件的内容并将其包含/发送给index.jade
?理想情况下,我想控制前端可以接收/查看的脚本文件。
可能有很多方法可以做到这一点。我应该使用某种类型的库(也许是Requirejs,idk很多)?
答案 0 :(得分:1)
不需要停用express.static
将公用文件夹用于要向用户公开的所有内容 像
应用
- &GT;控制器
公共
- &GT; JS
- &GT; - &GT;的jquery.js
- &GT; - &GT; abc.js
- &GT; CSS
- &GT; - &GT; bootstrap.css
htmls到这里
并使用express.static(__ dirname,'public')公开公用文件夹。
答案 1 :(得分:1)
我使用的一种策略是分离公共和私有节点文件。公共库实现双用途节点/浏览器代码。我使用的文件夹结构如下所示:
/app
/lib
/public
public_library.js
private_library.js
然后公开公共目录很简单,这样你就可以做到这两点:
var mylib = require('public/public_library.js');
节点文件中的和
<script src="lib/public/public_library.js"></script>
在您的浏览器中面对代码。
将要公开的所有库放在公共目录中。将您想要保留的所有库保存在公共目录之外。