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 类型的包装对象(Typed Wrappers)
Oct 27 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
Oct 23 Javascript
如何动态加载外部Javascript文件
Dec 02 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
Jun 14 Javascript
js实现简单的获取验证码按钮效果
Mar 03 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
详解vue 自定义marquee无缝滚动组件
Apr 09 Javascript
php结合js实现多条件组合查询
May 28 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
Oct 12 Javascript
微信小程序如何获取地址
Dec 24 Javascript
原生小程序封装跑马灯效果
Oct 21 Javascript
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
详解微信小程序网络请求接口封装实例
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版自动生成文章摘要
2008/07/23 PHP
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
php强制下载类型的实现代码
2011/04/21 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
PHP中“=>
2019/03/01 PHP
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
python实现人民币大写转换
2018/06/20 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
python实现经纬度采样的示例代码
2020/12/10 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
任课老师推荐信范文
2013/11/24 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
董事长年会致辞
2015/07/29 职场文书
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android