仅将指定的javascript文件发送到前端

时间:2014-02-26 18:02:28

标签: javascript node.js express

我有这样的应用

/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很多)?

2 个答案:

答案 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>

在您的浏览器中面对代码。

将要公开的所有库放在公共目录中。将您想要保留的所有库保存在公共目录之外。