PureJS (6.5):配置文件

[size=large][align=center][b]PureJS (6.5):配置文件[/b][/align][/size]

  配置文件的目的是把经常变化的部分提取出来,以便修改。相比 XML,直接用 js 进行配置会更为直截了当一些。
  在现在的 PureJS 工程中有三类配置文件:
  首先是 lib 和 server 的配置,在程序启动时生效,不支持热部署。
  其次是特定应用的配置,修改后生效,支持热部署。
  最后是用于测试的配置,与 lib 的配置相似,但设置的参数不同。

  当然,现在 PureJS 的功能还比较基础,因此需要配置的地方还不多。
  接下来,我们就逐一看看这些配置文件吧。

[size=medium][align=center][b]lib 和 server 的配置文件[/b][/align][/size]
  lib 中需要配置的有 pure.db 使用的数据库名称 和 pure.render 使用的页面文件目录(路径前缀)。
  server 需要配置端口、网站根目录、web 资源文件目录等。

  以下是 lib 和 server 的配置文件:
  [b]scripts/config.js[/b]
[code]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"
}
}[/code]
  在 pure.db 的实现中,获取数据库实例时使用了 config.db.name:

  [b]scripts/lib/pure/db.js[/b]
[code] function params() {
db = imp.Mongo().getDB(config.db.name);
// 其他代码,略。
}

function get(name) {
return proxy(db.getCollection(name));
}[/code]
  在 pure.render 的实现中,获取文件名时使用了 pure.render.prefix:

  [b]scripts/lib/pure/render.js[/b]
[code] function extend() {
// 其他代码,略。

var r = config.render;
pure.render.prefix = r && r.prefix || "";
}

function render(partial, file, func) {
// 其他代码,略。

file = pure.render.prefix + file + ".html";

// 其他代码,略。
}
[/code]

[size=medium][align=center][b]特定应用的配置文件[/b][/align][/size]
  应用本身也需要配置文件,并且这些文件通常放在 app 目录或其子目录下,以支持热部署。
  这里以 admin 的用户名和密码为例:

  [b]scripts/app/config.js[/b]
[code]app.config = {
admin : { name: "admin", password: "admin123" }
};[/code]
  在 api.auth 的实现中就可以使用 app.config.admin 了:

[b]scripts/app/api/auth.js[/b]
[code]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;
}
}[/code]
[size=medium][align=center][b]用于测试的配置文件[/b][/align][/size]
  测试时使用的数据库和页面文件的位置可能与生产不同,因此需要另外的配置文件,以下是两个例子:

  [b]scripts/test/app/config.js[/b]
[code]config = {
db: { name: 'test' },
render: { prefix: 'webapp/' }
};[/code]

[b]scripts/test/lib/config.js[/b]
[code]config = {
db: { name: 'test' },
render: { prefix: 'scripts/test/lib/render/' }
};[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值