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函数库-集合框架
Apr 27 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
Aug 26 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
Aug 05 Javascript
JavaScript类型系统之Object详解
Jan 07 Javascript
Fullpage.js固定导航栏-实现定位导航栏
Mar 17 Javascript
简单的js表格操作
Sep 24 Javascript
类似于QQ的右滑删除效果的实现方法
Oct 16 Javascript
使用Angular缓存父页面数据的方法
Jan 03 Javascript
详解.vue文件中监听input输入事件(oninput)
Sep 19 Javascript
10分钟上手vue-cli 3.0 入门介绍
Apr 04 Javascript
详解微信小程序工程化探索之webpack实战
Apr 20 Javascript
JavaScript ES6的函数拓展
Jan 18 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
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
jQuery入门知识简介
2010/03/04 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
JS异步加载的三种实现方式
2017/03/16 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
浅入深出Vue之自动化路由
2019/08/06 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
详解PyTorch批训练及优化器比较
2018/04/28 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
python五子棋游戏的设计与实现
2019/06/18 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
python求前n个阶乘的和实例
2020/04/02 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
给幼儿园老师的表扬信
2014/01/19 职场文书
大学校务公开实施方案
2014/03/31 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
微观世界观后感
2015/06/10 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL
服务器SVN搭建图文安装过程
2022/06/21 Servers