Node.js中Koa2在控制台输出请求日志的方法示例


Posted in Javascript onMay 02, 2019

前言

Koa2真的是个很轻量的框架,轻量到路由都作为了模块单独了出来,Koa2也没有日志功能,如果我们需要有一些请求的日志和时间,我们就需要引入日志中间件

下面话不多说了,来一起看看详细的介绍吧

引入时间格式化库MomentJS

安装MomentJS

npm install moment --save

简单格式化时间

使用YYYY-MM-DD HH:MM:SS代表 年-月-日 时-分-秒(24小时制)

console.log(Moment().format('YYYY-MM-DD HH:MM:SS'));

输出

2019-05-01 20:05:95

使用Koa2日志中间件

安装koa-logger

npm install koa-logger --save

如果需要使用TS,需要安装TS类型声明

npm install @types/koa-logger --save

简单使用koa-logger

const Koa = require("koa");    
const Koa_Logger = require("koa-logger");   // 日志中间件
const Koa_Router = require("koa-router");

// 实例化
const app = new Koa();    
const logger = Koa_Logger(); 
const router = new Koa_Router();

router.get("/",async (ctx)=>{
 ctx.body = "Hellow Koa";
});

// 使用中间件 
app.use(logger);     // 日志输出

app.use(router.routes());    // 路由

// 启动app
app.listen(3000);     // 设置监听端口
// 启动标识
console.log("Koa运行在:http://127.0.0.1:3000");

访问http://localhost:3000/,页面显示

Node.js中Koa2在控制台输出请求日志的方法示例

控制台输出

Node.js中Koa2在控制台输出请求日志的方法示例

给请求日志添加时间

改变一下logger的调用方式,加入moment格式化后的时间

const Koa = require("koa");        
const Koa_Logger = require("koa-logger");     // 日志中间件
const Koa_Router = require("koa-router");
const Moment = require("moment");
// 实例化
const app = new Koa();        
const logger = Koa_Logger((str) => {    // 使用日志中间件
 console.log(Moment().format('YYYY-MM-DD HH:MM:SS')+str);
});  
const router = new Koa_Router();

router.get("/",async (ctx)=>{
 ctx.body = "Hellow Koa";
});

// 使用中间件  
app.use(logger);         // 日志输出

app.use(router.routes());       // 路由

// 启动app
app.listen(3000);         // 设置监听端口
// 启动标识
console.log("Koa运行在:http://127.0.0.1:3000");

分别访问http://localhost:3000/
、http://localhost:3000/?test

控制台输出如下

Node.js中Koa2在控制台输出请求日志的方法示例

这样我们就有了一个带时间的请求日志了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript 限制输入和粘贴(IE,firefox测试通过)
Nov 14 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
Dec 11 Javascript
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
jquery实现表单验证并阻止非法提交
Jul 09 Javascript
JQuery标签页效果的两个实例讲解(4)
Sep 17 Javascript
微信小程序图表插件(wx-charts)实例代码
Jan 17 Javascript
js上传图片预览的实现方法
May 09 Javascript
微信小程序获取微信运动步数的实例代码
Jul 20 Javascript
基于LayUI实现前端分页功能的方法
Jul 22 Javascript
bootstrap table插件的分页与checkbox使用详解
Jul 23 Javascript
详解webpack-dev-server使用方法
Sep 14 Javascript
小试SVG之新手小白入门教程
Jan 08 Javascript
详解微信小程序网络请求接口封装实例
May 02 #Javascript
vue 搭建后台系统模块化开发详解
May 01 #Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
May 01 #Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
May 01 #Javascript
3分钟了解vue数据劫持的原理实现
May 01 #Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 #Javascript
JavaScript强制类型转换和隐式类型转换操作示例
May 01 #Javascript
You might like
缓存技术详谈―php
2006/12/14 PHP
php实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
实例讲解php数据访问
2016/05/09 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
splice slice区别
2006/10/09 Javascript
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
vue中使用v-for时为什么不能用index作为key
2020/04/04 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
Python 实现微信防撤回功能
2019/04/29 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
电子技术专业中专生的自我评价
2013/12/17 职场文书
高中运动会广播稿
2014/01/21 职场文书
给校长的建议书
2014/03/12 职场文书
优秀班主任申报材料
2014/12/16 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python