myweb0.2版本(更新)

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

复制代码

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

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

/**
* 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   : ""
}

二、新增功能 新增log日志打印功能,当然这个nodejs有一套api可以提供实现log记录,不过这里我自我设计了一个框架接口,其主要功能是:记录多种log日志(错误、警告、流水),同时根据自我的需要设定错误码,错误信息,同时设定错误级别。主要是便于系统的维护和监控。 提供的文件名:(在core文件夹下)log.js Module名中exports的函数名:addLog 参数 errorCode : 错误码 myErrorMsg : 错误信息 errorJson : 记录相应的数据 日志记录格式 [20:25:44] [1] [can not connect to mysql database] [ClientConnectionReady Error: ]  分别是:时间、错误级别、错误配置信息、错误代码信息(相应记录数据未添加) 实现方法:使用fs模块进行文件管理 本功能设计的api有readFileSync,lstat,writeFile,createWriteStream 该功能有待完善加提高效率! readFileSync同步读取文件内容 lstat查询是否有该文件存在 createWriteStream创建一个文件 writeFile重写一个文件 请教的问题:nodejs有没有提供是不重写文件的api,writeFile是重写文件的,因此我每次需要去读取文件信息,然后重新写进去,会导致效率下降! 源码下载地址:https://github.com/tnodejs/myweb-nodejs

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏EarlGrey的专栏

十分钟配置云端数据科学开发环境

本文将介绍如何在一台云服务器上配置 Jupyter Notebook 环境,从此只要有浏览器和网络,就是可以随时随地进行数据科学开发工作,不用担心家庭环境与办公...

1K2
来自专栏腾讯NEXT学位

JavaScript Worker 另类玩法

1163
来自专栏Java进阶架构师

9个提升逼格的redis命令

既然keys命令不允许使用,那么有什么代替方案呢?有!那就是scan命令。如果把keys命令比作类似select * from users where user...

1264
来自专栏小狼的世界

在Codeigniter框架中使用NuSOAP

NuSOAP 是一组功能强大的PHP类,这个工具的发布让使用和创建SOAP消息变得相当简单。 NuSOAP有Dirtrich Ayala编写,可以无缝的与许多最...

801
来自专栏cloudskyme

JAVA高性能I/O设计模式

同步阻塞模式。在JDK1.4以前,使用Java建立网络连接时,只能采用BIO方式,在服务器端启动一个ServerSocket,然后使用accept等待客户端请求...

1512
来自专栏码洞

【动画】当我们在读写Socket时,我们究竟在读写什么?

套接字socket是大多数程序员都非常熟悉的概念,它是计算机网络编程的基础,TCP/UDP收发消息都靠它。我们熟悉的web服务器底层依赖它,我们用到的MySQL...

1011
来自专栏木子昭的博客

精析Python3实现动态web服务(附服务端源码)如果我们提供一个动态网站服务,至少应考虑以下四点:一个优秀的动态web框架应该是这样的:关于WSGI标准WIGS模型的要点:实现源码小结:

实现一个简单的静态web网站,只需将写好的html页面上传到特定的web服务器软件即可,但静态网页其实和图片没什么区别,每次更新网站内容,都需要重新制作htm...

37812
来自专栏JavaEdge

操作系统之内存管理内存管理3.1 内存管理的概念3.2 内存覆盖与内存交换3.3 内存连续分配管理方式3.4 内存非连续分配管理方式

5856
来自专栏阿杜的世界

【转】Dubbo架构设计详解总体架构核心要点参考资料

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度...

1145
来自专栏Java技术栈

分布式 | Dubbo 架构设计详解

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度...

1612

扫码关注云+社区

领取腾讯云代金券