手动搭建koa+ts项目框架(日志篇)

1.4 koa2改造为TS项目 一、安装相关依赖 npm install tslint typescript -g npm install @types/koa-logger @types/koa-router @types/koa-views -g npm install nodemon ts-node -g 二、配置package.json的script "scripts": { "start": "npm run serve", "serve": "nodemon src/app.ts --config 阅读详情

前言

本文基于手动搭建koa+ts项目框架(路由篇)新增日志记录


一、安装koa-logger

npm i -S koa-onerror
and 
npm i -S koa-logger
and 
npm i -D @types/koa-logger

二、引入koa-logger并使用

./src/index.ts文件引入

import Koa from "koa";

import logger from 'koa-logger'

import index from "./routes/index"
import users from "./routes/user"

const app = module.exports = new Koa();

// 中间件
app.use(logger())

// 日志记录
app.use(async (ctx, next) => {
    const start = new Date()
    await next()
    const ms = Number(new Date()) - Number(start)
    console.log(ctx.query)
    console.log(ctx.body)
    console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
})

// 接口路由
app.use(index.routes())
app.use(users.routes())

if (!module.parent) app.listen(3000);

执行npm run dev开启服务,使用postman查看相关接口
如图,打印了调用的接口项目信息(可以根据项目需要,记录相关日志到数据库啦)

在这里插入图片描述

在这里插入图片描述

三、使用koa-log4开启服务log

npm i -S koa-log4
  • src/utils/logger.ts
const path = require('path');
const log4js = require('koa-log4');
const RUNTIME_PATH = path.resolve(__dirname, '../');
const LOG_PATH = path.join(RUNTIME_PATH, 'log');

log4js.configure({
  // 日志的输出
  appenders: {
    access: {
      type: 'dateFile',
      pattern: '-yyyy-MM-dd.log', //生成文件的规则
      alwaysIncludePattern: true, // 文件名始终以日期区分
      encoding: 'utf-8',
      filename: path.join(LOG_PATH, 'access.log') //生成文件名
    },
    application: {
      type: 'dateFile',
      pattern: '-yyyy-MM-dd.log',
      alwaysIncludePattern: true,
      encoding: 'utf-8',
      filename: path.join(LOG_PATH, 'application.log')
    },
    out: {
      type: 'console'
    }
  },
  categories: {
    default: { appenders: [ 'out' ], level: 'info' },
    access: { appenders: [ 'access' ], level: 'info' },
    application: { appenders: [ 'application' ], level: 'all'}
  }
});

// getLogger 传参指定的是类型
export const logger = log4js.getLogger('application');
export const accessLogger = () => log4js.koaLogger(log4js.getLogger('access')); // 记录所有访问级别的日志
  • src/index.ts
import Koa from "koa";
import index from "./routes/index"
import users from "./routes/usr"

import { accessLogger } from './utils/logger';


const app = module.exports = new Koa();

// 中间件
app.use(logger())
app.use(accessLogger())


// 接口路由
app.use(index.routes())
app.use(users.routes())

if (!module.parent) app.listen(3000);

  • 开启服务后,调用接口就会写入日志文件
    在这里插入图片描述

总结

根据koa-logger依赖,可记录实际用户访问的接口记录~

如有启发,可点赞收藏哟~

一、vue3+ts项目框架搭建——规范 eslint针对的是javascript,他是一个检测工具,包含js语法以及少部分格式问题,在eslint看来,语法对了就能保证代码正常运行,格式问题属于其次;会在根目录下生成个一个.husky目录,在这个目录下面会有一个pre-commit文件,这个文件里面的命令在我们执行commit的时候就会执行。对于我们的commit信息,也是有统一规范的,不能随便写,要让每个人都按照统一的标准来执行,我们可以利用。当我们对代码进行commit操作的时候,就会执行命令,对代码进行格式化,然后再提交。 阅读详情

相关推荐

从零开始开发全栈项目:一、基于 Koa 的全栈后端框架封装

在应用的架构中,除了核心的路由、中间件、控制器和服务等功能,往往还需要一些额外的功能模块,比如日志、缓存、权限校验等。├── router-schema/ // 路由校验规则文件夹,定义接口的参数验证规则。├── controller/ // 控制器层,处理业务逻辑,响应路由请求。├── router/ // 路由文件夹,用于定义 API 路由规则。├── middleware/ // 中间件功能,支持自定义中间件。├── service/ // 服务层,用于封装核心业务逻辑。

2403_88969259的博客 1378

koa +ts 搭建简单项目

Step 1 创建基础和安装依赖 mkdir <project-name> cd <project-name> git init // 初始化 git 配置文件 mkdir src // 安装依赖 npm init // 初始化 package.json npm i koa koa-router npm i --save-dev typescript ts-node nodemon npm i --save-dev @types/koa @types/koa-router

WJLcomeon的博客 4194

使用koa-log4管理nodeJs日志笔记的使用方法

主要介绍了使用koa-log4管理nodeJs日志笔记的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

探索Koa.js生态:强大的日志管理库——Koa-Logger

探索Koa.js生态:强大的日志管理库——Koa-Logger 项目简介 是一个为 Koa.js 应用设计的日志中间件。如果你正在使用或计划使用Koa构建你的Web应用,那么Koa-Logger将会是你的理想选择,它可以帮助你轻松地记录和管理应用的运行信息,让你更好地理解和调试你的系统。 技术分析 Koa-Logger 使用了Node.js内置的 console 模块,并结合Koa的中间件机制,以...

gitblog_00039的博客 1330

深度学习模型轻量化方法之【量化】

量化虽然有着硬件友好和功效提升的特点,但它也引入了模型性能的折衷。因此,设计有效的量化策略需要在模型大小、性能以及运算速度之间做出平衡。随着深度学习算法和硬件加速技术的快速发展,量化方法在使深度网络轻量化和提高部署效率方面持续发挥着重要作用。

m0_73916791的博客 2846

ECU-TEST 快速入门

ECU-TEST 是由位于德国德累斯顿的TraceTronic公司开发的一款用于嵌入式系统测试验证软件工具。自从2003年首次发布ECU-TEST ,该软件成为了汽车ECU开发的标准工具 ,同时也逐步成为了重型机械和工业自动化开发的标准工具 。该软件是起源自于一个控制单元的系统化测试的项目研究,从而为从德累斯顿工业大学脱离出来的TraceTronic公司奠定了基础。ECU-TEST旨在完成测试案例的规范化、评估、求解和归档。得益于该软件包含大量的自动化测试方法使得测试案例的所有必要功能如创建、求解和评估

wangying202的博客 1万+

手动搭建koa+ts项目框架(mysql篇)

本文基于手动搭建koa+ts项目框架(路由篇)新增mysql使用TS版本需使用mysql2插件,mysql只支持js版本的还需安装插件,方便解析请求值(或者使用koa-body。

失眠时间的博客 966

从代码学习深度强化学习 - 目标导向的强化学习-HER算法 PyTorch版

经典的深度强化学习算法,如 PPO、SAC 等,在各自擅长的任务中都取得了非常好的效果。但它们通常都局限在解决单个任务上,换句话说,训练好的算法,在运行时也只能完成一个特定的任务。想象一个场景:我们想让一个机械臂能把桌子上的任何一个物体重置到任意一个指定位置。对于传统强化学习而言,如果目标物体的初始位置和目标位置每次都变化,那么这就是一个全新的任务。即便任务的“格式”——抓取并移动——是一样的,但策略本身可能需要重新训练。这显然效率极低。为了解决这类问题,

weixin_43887510的博客 1498

Nodejs-Koa基于分层理念的框架搭建(附完整TS源码)

自己用Typescript搭建的分层式开发后端框架,分享给小伙伴们。附有源码哦!

PP的痛 1804

逆向实战:从x-mini签名到RPC调用,Frida动态分析小红书加密协议

本文通过实战案例,详细拆解了小红书App的加密协议逆向分析过程。从识别x-mini签名等关键参数入手,结合静态分析与Frida动态Hook技术,追踪到核心的RPC调用入口,并最终封装成可独立调用的RPC函数,为安全研究和协议理解提供了完整的技术路径。

moss5的博客 1028

用Arduino和FS-i6X遥控器,从零开始打造你的第一只仿生扑翼蝴蝶(附完整代码解析)

本文详细介绍了如何利用Arduino和FS-i6X遥控器从零开始制作仿生扑翼蝴蝶,包括硬件准备、电路连接、代码解析和调试技巧。通过完整的代码示例和参数说明,帮助读者快速掌握仿生机器人的制作要点,实现蝴蝶的自然飞行效果。

weixin_28727975的博客 309

手动搭建koa+ts项目框架(部署服务器使用pm2启动,并设置相关环境变量)

手动搭建koa+ts项目框架(部署服务器使用pm2启动,并设置相关环境变量)

失眠时间的博客 1025

【个人学习总结】CRC校验原理及实现

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 ..................

星Yeah 的博客 7967

koa2改造为TS项目【优化版】

借鉴作者 LesStudy.在他的基础上,快速搭建自己node微服务。

qq_24937505的专栏 1212

计算电磁学(三)有限差分方法

有限差分方法(FDM)是一种数值处理方法,通过将偏微分方程变换为一组代数方程,通过求解代数方程组来得到原边值问题的近似值。由于有限差分法非常简单,所以也特别的稳定高效。其中时域有限差分方法(FDTD)是电磁分析中的常用方法。在计算电磁学中,常用有限差分方法(finite difference equations)来替代微分方程。一个有限差分法通常包括三个步骤将求解域划分网格用有限差分方程逼近给定的微分方程求解在给定边界条件和初始状态下的方程常用的网格模型方阵斜方阵三角阵圆形阵。

CCC_B的博客 1639

图像处理入门007:图像处理中的数学基础:线性代数与卷积

一种:把 OpenCV 当黑盒,调用,效果不对就乱调参数;另一种:理解每个像素是怎么被周围邻域"加权平均"的,理解核翻转、边界填充、stride 的含义。前者能干活,后者能解难题。一旦遇到自定义核(比如 ISP 上的锐化)、深度学习反向传播、医学图像重建,你就必须把卷积、相关、矩阵乘法这些基本功捡回来。线性代数三件套:向量点积、矩阵乘法、线性变换;2D 卷积的数学定义:核翻转、滑动窗口、边界填充。并手写一个,验证它与和的结果完全一致(误差 < 1e-9)。f∗gn∑m−∞∞f。

专注:太空算力、AI infra、异构调度、大模型成本工程 385

koa2+ts+sqlite3+apidoc的起手式项目

基于koa2做了相关开发常用的插件整合,适用于做项目的起手式框架搭建

chen_p_cheng的博客 685

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

使用 koa2 + typeorm + koa-jwt + ts 开发项目

使用koa + typeorm + koa-jwt + ts 开发项目

LOVEjourneyQAQ的博客 1008

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Ts.ED 终极指南:10分钟快速掌握 TypeScript 企业级框架

Ts.ED 是一个基于 Express、Koa 和 Fastify 的 Node.js 与 TypeScript 框架,它通过丰富的装饰器和开发规范,让代码更具可读性且减少错误。无论是构建中小型 API 还是复杂的企业级应用,Ts.ED 都能提供完整的架构支持和开发体验。 ## 🚀 为什么选择 Ts.ED? Ts.ED 为开发者带来三大核心优势: - **TypeScript 原生支持**:

gitblog_00909的博客 970

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

详细koa2+ts+prisma+swagger的后端项目部署(部署到宝塔面板)

利用koa2+ts+prisma+swagger的完成的后端项目,在本地成功运行后部署到云服务器,选择了宝塔面板

qq_42820307的博客 1257

nodejs项目的正确打开方式,typescript + koa

koa + typescript typescript + tslint 规范化代码,选择typeorm作为数据库的orm,选择log4js输出日志 1. 目录结构 ├── bin │ └── www.ts // 启动应用 ├── logs // 存放日志 ├── src │ ├── app │ │ ├── components // 控制器组件 │ │ │ ├── ...

huzzzz的博客 2167

koa开发实践1:基于 gulp 搭建 typescript 自动构建环境

我们这一节的目标是同过gulp于相关工具构建一个基于 TypeScript 的 koa 项目开发环境,并且希望这个环境能够自动的监听 TypeScritp 源代码的变化,在发生源代码改变时执行自动编译为用于 NodeJS 的 JavaScript 代码,并启动服务。本文带大家搭建了一个全自动化编译、运行 由 TypeScript 编写的 koa 服务器,它能够自动的清理 旧有的编译项目,监视 TypeScript 源代码变化,自动编译为 JavaScript 并在编译完成后 自动地启动服务器。

jclee95的个人博客 930

Node.js 搭建一个 API 接口服务(实战)

前言因为最近打算自己搭建一个自己的博客系统,用来记录日常的学习和提升一下写作水平,所以能就打算自己搭建一下前后端项目。在网上找了下,也没有找到合适(现成)的项目,所以就打算自己动手来搭建...

程序员成长指北 4161

Koa与TypeScript结合:构建类型安全的Node.js应用

Koa作为由Express原班人马打造的轻量级Web框架,以其简洁的API和强大的中间件系统受到开发者青睐。将Koa与TypeScript结合使用,能为Node.js应用带来类型安全保障,显著提升代码质量与开发效率。本文将详细介绍如何从零开始搭建一个基于Koa和TypeScript的项目,以及在开发过程中如何利用TypeScript的特性优化Koa应用。 ## 为什么选择Koa+TypeScri

gitblog_00730的博客 780

NodeJs三大框架之koa.js、egg.js、express.js

Express.js 是 Node.JS 诞生之初,最早出现的一款框架,现在仍然很流行,作者是TJ。 随着ECMAScript的发展,推出了generator yield语法,JS向同步方式写异步代码迈出了一步,作为回应,TJ大神推出了Koa.js。 Koa.js是一款微型Web框架,写一个hello world很简单,但web应用离不开session,视图模板,路由,文件上传,日志管理。这些 Koa 都不提供,需要自行去官方的Middleware寻找。然而,100个人可能找出100种搭配。 E...

莫问前程F1的博客 4528

koa+react+webpack搭建的新框架

目前所负责的项目要启动重构了。虽然之前也写过node和webpack的demo,但对整体的框架认知还不够全面,这次在搭建过程中,了解了每一个中间件所发挥的作用。收益很多。并把一些重要的知识点做了总结。 整体思路 多路由多页面应用设计 复制代码 目录结构 . ├── client │ ├── libs │ │ └── qn.js │ ├── npm-scripts │ │...

weixin_33724059的博客 1025
上一篇: 手动搭建koa+ts项目框架(路由篇)
下一篇: 手动搭建koa+ts项目框架(mysql篇)
失眠时间
博客等级 码龄7年 9134粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值