MyWeb0.2版本更新说明
发布于 12 年前 作者 huangdh3 6229 次浏览 最后一次编辑是 8 年前

本文来自nodejs论坛:<a href=‘http://www.tnodejs.com’>www.tnodejs.com</a><br/> 一、针对几个很好的建议,我把该框架进行了进一步的修改!<br/> 两个好的建议主要是来自cnodejs.org<br/> 1、关于读取配置文件,降低效率的问题<br/> 用户名:kamaliang<br/> 建议:每次请求时都要对router.json进行readFileSync?这个没必要吧?<br/> 解释:这样会影响系统的效率,如何避免这个问题呢?我采用的方法是通过使用一个静态全局变量,第一次需要读取配置文件,第二次就直接从全局变量获取!<br/> 针对该问题做了一个全局的静态命名空间,如下代码:

/*
 *初始变量,主要是初始一些静态变量
 */
global.initVar = {
    routerConfig   : "",
    errorConfig    : "",
    serverConfig   : ""
}

2、global下注册了多个变量的问题<br/> 用户名:kfll<br/> 建议:在global下注册那么多名字合适么… 还是注册个命名空间吧… global.xxxxApp = {}<br/> 解释:避免本文件的命令空间变量和global的变量冲突,同时便于系统化管理与配置。<br/> 以上两个建议非常好,感谢他们提出的问题!<br/> 针对该建议注册了命名空间,如代码:<br/>

/**
 * modules引入
 */
global.Module = {
    express : require('express'),
    sio : require('socket.io'),
    fs : require('fs'),
    path : require('path'),
    url : require('url'),
    parseCookie : require('connect').utils.parseCookie,
    MemoryStore : require('./node_modules/connect/lib/middleware/session/memory'),
    Session : require('./node_modules/connect/lib/middleware/session/session'),
    sys : require('util')
}
/*

 *初始变量,主要是初始一些静态变量
 */
global.initVar = {
    routerConfig   : "",
    errorConfig    : "",
    serverConfig   : ""
}

二、新增功能<br/> 新增log日志打印功能,当然这个nodejs有一套api可以提供实现log记录,不过这里我自我设计了一个框架接口,其主要功能是:记录多种log日志(错误、警告、流水),同时根据自我的需要设定错误码,错误信息,同时设定错误级别。主要是便于系统的维护和监控。<br/> 提供的文件名:(在core文件夹下)log.js<br/> Module名中exports的函数名:addLog<br/> 参数<br/> errorCode : 错误码<br/> myErrorMsg : 错误信息<br/> errorJson : 记录相应的数据<br/> 日志记录格式<br/> [20:25:44] [1] [can not connect to mysql database] [ClientConnectionReady Error: ]<br/> 分别是:时间、错误级别、错误配置信息、错误代码信息(相应记录数据未添加)<br/>

实现方法:使用fs模块进行文件管理<br/> 本功能设计的api有readFileSync,lstat,writeFile,createWriteStream<br/> 该功能有待完善加提高效率!<br/> readFileSync同步读取文件内容<br/> lstat查询是否有该文件存在<br/> createWriteStream创建一个文件<br/> writeFile重写一个文件<br/> 请教的问题:nodejs有没有提供是不重写文件的api,writeFile是重写文件的,因此我每次需要去读取文件信息,然后重新写进去,会导致效率下降!<br/> 源码下载地址:<a href=‘https://github.com/tnodejs/myweb-nodejs’>https://github.com/tnodejs/myweb-nodejs</a>

3 回复

配置文件 每次读取也有好处;就是可以随时更新配置文件,不用重新启动。node不需要编译,有些语言需要编译。如果不写在配置文件中,要先改代码在编译,先停止再部署在启动,好麻烦;有了配置文件,直接替换配置文件,不需要编译重启。

嗯嗯~说的真是不错~顶一个!

@huangdh3 可以增加一个debug选项,当debug为true时,每次都会加载配置文件,这样就可以在开发过程中减少服务器重启。当debug为false的时候,可以使用在部署的环境中,加快执行效率

回到顶部