App开发之服务器框架搭建
关于服务器,在原有express上稍加改动。
增加 conf目录,创建config.js
var logger = require('../utils/log4jsutil').logger(__dirname+'/config.js');
var server = {
sms:'',//短信 ali 阿里 jpush 极光
push:true,//推送
validate:true,//验证码
mysqldb:'default',//'default' 默认 'docker' 阿里云'ali'
app_name:'phelper',
}
/**
* http服务器
*/
server.http_post = 9201;
/**
* 匹配服务器
*/
server.socket_match_post = 9104;
/**
* 猜诗聊天服务器
*/
server.socket_gp_chats_post = 8888;
server.socket_guess_post = 9201;
server.debug = 'debug';
server.ali = 'ali';
server.tencent = 'tencent';
server.env = server.debug;
// server.env = server.ali;
// server.env = server.tencent;
if(server.env == server.ali){
server.sms = 'ali';
server.push = true;
server.validate = true;
server.mysqldb = 'ali';
}else if(server.env == server.tencent){
server.sms = 'ali';
server.push = true;
server.validate = true;
server.mysqldb = 'tencent';
}else{
// server.sms = 'ali';
}
//配置项
module.exports = {
server,
};
bin/www中稍加改动,使用配置文件中的端口
var server_conf = require('../conf/config').server;
var http_post = server_conf.http_post;
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || http_post);
创建daos目录,用来存放数据库操作
创建push目录,用来存放推送
创建test目录,用来存放一些测试单元
创建utils,用来存放工具集
utils目录下,创建log4jsutil.js,封装日志工具类
/**
* 日志工具
* logger.trace('This is an index page! -- log4js');
* logger.debug('This is an index page! -- log4js');
* logger.info('This is an index page! -- log4js');
* logger.warn('This is an index page! -- log4js');
* logger.error('This is an index page! -- log4js');
* logger.fatal('This is an index page! -- log4js');
*/
var log4js = require('log4js');
const fs = require('fs');
levels = {
'trace': log4js.levels.TRACE,
'debug': log4js.levels.DEBUG,
'info': log4js.levels.INFO,
'warn': log4js.levels.WARN,
'error': log4js.levels.ERROR,
'fatal': log4js.levels.FATAL
};
function judgePath(pathStr) {
if (!fs.existsSync(pathStr)) {
fs.mkdirSync(pathStr);
// console.log('createPath: ' + pathStr);
}
}
log4js.configure({
// appenders:[
// //控制台输出
// {"type": "console"},
// {type: 'dateFile',
// //文件名为= filename + pattern, 设置为alwaysIncludePattern:true
// filename: 'logs/', // 需要手动创建此文件夹
// pattern: 'yyyy-MM-dd.log',
// //包含模型
// alwaysIncludePattern: true,
// }],
// replaceConsole: true // 替换 console.log
appenders: {
out: { type: 'stdout' },
file: {
type: 'dateFile',
//文件名为= filename + pattern, 设置为alwaysIncludePattern:true
filename: 'logs/phelper', // 需要手动创建此文件夹
pattern: 'yyyy-MM-dd.log',
//包含模型
alwaysIncludePattern: true,
}
},
categories: {
default: { appenders: ['out','file'], level: 'debug' }
}
})
exports.logger = function (name, level) {
name = name.replace(process.cwd(),'');
var logger = log4js.getLogger(name);
//默认为debug权限及以上
logger.level = levels[level] || levels['debug'];
return logger;
};
exports.use = function (app, level) {
//加载中间件
app.use(log4js.connectLogger(log4js.getLogger('logInfo'), {
level: levels[level] || levels['debug'],
//格式化http相关信息
format: ':method :url :status'
}));
};
安装log4js
npm install log4js
总体概览
评论