PureJS (6.5):配置文件
配置文件的目的是把经常变化的部分提取出来,以便修改。相比 XML,直接用 js 进行配置会更为直截了当一些。
在现在的 PureJS 工程中有三类配置文件:
首先是 lib 和 server 的配置,在程序启动时生效,不支持热部署。
其次是特定应用的配置,修改后生效,支持热部署。
最后是用于测试的配置,与 lib 的配置相似,但设置的参数不同。
当然,现在 PureJS 的功能还比较基础,因此需要配置的地方还不多。
接下来,我们就逐一看看这些配置文件吧。
lib 和 server 的配置文件
lib 中需要配置的有 pure.db 使用的数据库名称 和 pure.render 使用的页面文件目录(路径前缀)。
server 需要配置端口、网站根目录、web 资源文件目录等。
以下是 lib 和 server 的配置文件:
scripts/config.js
config = {
// 指定数据库名称
db : { name : 'app' },
// 指定页面文件目录(路径前缀)
render : { prefix : 'webapp/' },
// server 的配置
server : {
// 使用的端口号
port : 8080,
// 网站根目录,即网站 URL 中接在域名之后的部分
contextPath: "/",
// web 资源文件目录,客户端可见的 html、css、js 等都放在这个目录下
resourceBase: "webapp",
// 上传文件的最大限制
maxUploadSize : 10 * 1024 * 1024,
// log4j 日志系统的配置文件的位置
logConfigPath: "log4j.properties",
// 服务器端执行的脚本的位置,这些脚本支持热部署
scriptsDirs : ["scripts/lib", "webapp/js/both", "scripts/app"],
// servlet 的位置 (apiServlet 和 pageServlet)
servletsDirs: ["scripts/servlets"],
// apiServlet 的访问路径映射
apiServletPath: "/api",
// pageServlet 的访问路径映射
pageServletPath: "/",
// defaultServlet(静态文件)的访问路径映射
defaultServletPath : "*.js,*.css,*.ico,*.txt,*.png,*.jpg,*.gif,*.htm,*.html,*.swf"
}
}
在 pure.db 的实现中,获取数据库实例时使用了 config.db.name:
scripts/lib/pure/db.js
function params() {
db = imp.Mongo().getDB(config.db.name);
// 其他代码,略。
}
function get(name) {
return proxy(db.getCollection(name));
}
在 pure.render 的实现中,获取文件名时使用了 pure.render.prefix:
scripts/lib/pure/render.js
function extend() {
// 其他代码,略。
var r = config.render;
pure.render.prefix = r && r.prefix || "";
}
function render(partial, file, func) {
// 其他代码,略。
file = pure.render.prefix + file + ".html";
// 其他代码,略。
}
特定应用的配置文件
应用本身也需要配置文件,并且这些文件通常放在 app 目录或其子目录下,以支持热部署。
这里以 admin 的用户名和密码为例:
scripts/app/config.js
app.config = {
admin : { name: "admin", password: "admin123" }
};
在 api.auth 的实现中就可以使用 app.config.admin 了:
scripts/app/api/auth.js
api.auth = {
login : function(params, req) {
var admin = app.config.admin;
if (params.name !== admin.name
|| params.password !== admin.password) {
return false;
}
req.session.setAttribute("user.role", "admin");
return true;
}
}
用于测试的配置文件
测试时使用的数据库和页面文件的位置可能与生产不同,因此需要另外的配置文件,以下是两个例子:
scripts/test/app/config.js
config = {
db: { name: 'test' },
render: { prefix: 'webapp/' }
};
scripts/test/lib/config.js
config = {
db: { name: 'test' },
render: { prefix: 'scripts/test/lib/render/' }
};
分享到:
相关推荐
6.5: Tomcat服务器 、 Tomcat应用案例 、 Varnish代理服务器 、 总结和.docx
VDA 6.5_2020变化点解读.pdf
Myeclipse6.5 svn配置,免费资源,仅供参考!
MyEclipse_6.5下配置SVN MyEclipse_6.5下配置SVN
产品审核是汽车产品质量管理体系标准手册,是从顾客的角度对产品进行独立评估的管理工具,并且保障避免产品和货物出现缺损的情况出现,产品审核该、还体现了持续改进的潜力
Centos6.5镜像文件 Linux。。
NC6.5 硬件配置参考.pdf
Myeclipse6.5优化配置 java初学者应该看看 ,对你的学习很有帮助的!
BO6.5安装配置手册
UAP6.5 分布式配置指南,详细讲解用友UAP分布式的配置与规划。
Araxis Merge v6.5:免安装版本,解压直接运行merge.exe即可正常使用(目前好像不支持Win10系统了,但是我同事的win10可以用,看需要使用)。 Araxis Merge 2017:解压后,看安装说明,比较简单,纯净2017,推荐...
vcsa 6.5配置ha高可用详细步骤 做到高可用,vcsa 6.5开始高可用很简单,系统自带就能做了,不需要前端的负载均衡器 本教程就是如何来配置,每一步都有截图说明
shiboken6.abi3.dll文件
更新:2015 年 2 月 13 日,R. Hoetzlein (c) 2012-2013 的 Port of Fluids v.3.1, //fluids3.com 到 Muhammad Mobeen Movania 的...配置文件时间。 现在包括使用 NVIDIA 的免费 NSight 工具在 GPU 上进行分析的 GP
兼容6.5.X; 一般注意事项,见http://down.51cto.com/data/275922 建议中文的sugar系统修改config.php配置文件,以获得更好使用(先备份好原文件)。 config.php为sugar配置文件,建议更改部分。 第1处: 'default...
Ext JS 6.5.3.57 - JavaScript Library Copyright (c) 2006-2018, Sencha Inc. All rights reserved. licensing@sencha.com
REDHAT 6.5 实现双机rhcs配置
(默认配置的是 php 文件夹,如果要换其他文件夹,请自行修改 nginx 的 dev.conf 文件的配置) 示例: 根目录 |--php |--cai |--zheng |--hai |--getyii |--frontend |--web 默认我使用的是 *....
pb6.5的安装文件,具体可参见百度内容