App開發(fā)之服務器框架搭建
關于服務器,在原有express上稍加改動。
增加 conf目錄,創(chuàng)建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);
創(chuàng)建daos目錄,用來存放數(shù)據庫操作
創(chuàng)建push目錄,用來存放推送
創(chuàng)建test目錄,用來存放一些測試單元
創(chuàng)建utils,用來存放工具集
utils目錄下,創(chuàng)建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/', // 需要手動創(chuàng)建此文件夾// pattern: 'yyyy-MM-dd.log',// //包含模型// alwaysIncludePattern: true,// }],// replaceConsole: true // 替換 console.logappenders: {out: { type: 'stdout' },file: {type: 'dateFile',//文件名為= filename + pattern, 設置為alwaysIncludePattern:truefilename: 'logs/phelper', // 需要手動創(chuàng)建此文件夾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總體概覽

評論
圖片
表情
