1、环境定制配置文件及NODE_ENV设置
环境定制指的是依据NODE_ENV配置,开发和测试环境拉取不同的配置文件。
推荐模块:config-lite,使用参考:不同环境下配置使用(https://segmentfault.com/a/1190000010099383)
其中,在windows中配置NODE_ENV的设置不生效的问题,
推荐模块:cross-env,使用参考: 使用cross-env解决跨平台设置NODE_ENV的问题(https://segmentfault.com/a/1190000005811347)
2、创建http服务器一组request对象
"req": { ???"url": "/performance-now.js.map", ???"headers": { ?????"host": "localhost:3000", ?????"connection": "keep-alive", ?????"cache-control": "no-cache", ?????"user-agent": "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36", ?????"accept-encoding": "gzip, deflate, br", ?????"accept-language": "zh-CN,zh;q=0.9,ar;q=0.8,cs;q=0.7,de;q=0.6,en;q=0.5,es;q=0.4,fr;q=0.3,gl;q=0.2,hu;q=0.1,id;q=0.1,it;q=0.1,ja;q=0.1,ko;q=0.1,ms;q=0.1,pl;q=0.1,pt;q=0.1,ru;q=0.1,th;q=0.1,tr;q=0.1,vi;q=0.1,zh-TW;q=0.1", ?????"cookie": "myblog=s%3AVE5neyqvgvIhgSOiU_MRNypeYqJvd7bs.qpxxKHewlaZJ68cN0mzNQtH6sGSnE2GraxTrBatpARU; blog-demo=s%3AwHNEMnXL9oTMwgqEM2g2QdrMM23oZA4P.puTN0wUBP3CWRgoeZzaDBFoPRtqnLEnTcFQfvVr%2FU7c; io=wtQDO9oCtfs0qObOAAAB" ???}, ???"method": "GET", ???"httpVersion": "1.1", ???"originalUrl": "/performance-now.js.map", ???"query": {} ?},
3、日志记录
最常用的日志记录包括:访问日志、错误日志。
推荐模块:Winston & express-winston、log4js 使用推荐:log4js日志管理(https://www.cnblogs.com/yjfengwen/p/3827217.html)
// 正常请求的日志app.use(expressWinston.logger({ ?transports: [ ???new (winston.transports.Console)({ ?????json: true, ?????colorize: true ???}), ???new winston.transports.File({ ?????filename: ‘logs/success.log‘ ???}) ?]}))// 错误请求的日志app.use(expressWinston.errorLogger({ ?transports: [ ???new winston.transports.Console({ ?????json: true, ?????colorize: true ???}), ???new winston.transports.File({ ?????filename: ‘logs/error.log‘ ???}) ?]}))
4、包配置文件
模块:package,用于获取项目package.json配置文件的任意配置
5、页面消息管理
模块:connect-flash,因为flash是session中存储信息的特殊区域,此类信息展示给用户之后就被删除。
所以,需要和express-session中间件配合使用。
如何使用?
首先,使用 cookieParser 和 session 中间件来设置session:
const flash = require(‘connect-flash‘);const express = require(‘express‘);const session = require(‘express-session‘);var app = express();app.configure(function() { ?app.use(express.cookieParser(‘keyboard cat‘)); ?app.use(express.session({ cookie: { maxAge: 60000 }})); ?app.use(flash());});
待使用了flash中间件后,所有的requests请求调用flash()函数来处理flash信息。
app.get(‘/flash‘, function(req, res){ ?// 通过调用req.flash(),设置flash 提示信息 ?req.flash(‘info‘, ‘Flash is back!‘) ?res.redirect(‘/‘);});app.get(‘/‘, function(req, res){ ?// 通过key设置flash信息 ?res.render(‘index‘, { messages: req.flash(‘info‘) });});
未完待续...
Nodejs随学随记(杂)
原文地址:https://www.cnblogs.com/mimifeng/p/9407584.html