Koa学习笔记

1、npm 初始化

npm init -y
  • 生成 package.json 文件,记录项目的依赖

2、git 初始化

git init
  • 生成 .git 隐藏文件夹,.git 的本地仓库
  • 创建 .gitignore 文件,添加不提交文件的名称

3、创建 ReadMe.md 文件

  • 记录项目笔记

4、搭建项目

  • 安装 Koa 框架
npm install koa

5、编写最基本的 app

  • 在项目根目录创建 src 文件夹,并文件夹中创建 main.js 文件,文件内容如下:
// 导入包
const Koa = require("koa");// 端口
const post = 3000;// 实例化对象
const app = new Koa();// 中间件
app.use((ctx, next) => {ctx.body = "hello world";
});// 监听端口
app.listen(post, () => {console.log("server is running on http://localhost:3000");
});
  • 启动方法
node src/main.js

6、自动重启服务

  • 使用 nodemon 工具
  • 安装
npm install nodemon -D
  • 修改项目启动脚本
    • 修改 package.json 文件中的 scripts 节点,添加如下代码:
"scripts":{"serve":"nodemon ./src/main.js"
}
  • 然后项目启动方法为:
npm run serve

7、读取配置文件

  • 安装 dotenv ,读取根目录中的 .env 文件,将配置写 process.env
npm install dotenv
  • 在项目根目录下创建 .env 的配置文件,代码如下:
APP_PORT = 8000; // 8000 端口
  • 在项目根目录 src 下创建 config 文件夹,并文件夹中创建 config.default.js 文件,内容如下:
const dotenv = require("dotenv");dotenv.config();module.exports = process.env; // 导出
  • 改写 main.js 文件
// 导入包
const Koa = require("koa");// 导入,从配置文件中获取的端口
const { APP_PORT } = require("./config/config.default");// 实例化对象
const app = new Koa();// 中间件
app.use((ctx, next) => {ctx.body = "hello api";
});// 监听端口
app.listen(APP_PORT, () => {console.log(`server is running on http://localhost:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623163.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对Transformer的理解。

要理解Transformer,需要先理解注意力机制,下面大部分内容来自台大教授李宏毅老师讲课资料。 注意力机制 之前使用的MLP,CNN,RNN模型可以解决一些简单序列问题,但当序列长度太长容易失去效果,原因是看了新…

xtu oj 1169 最大子段和

题目描述 给你一个数列a1,a2,...,an,求m个连续数字组成的子段和最大值。 输入 有多个样例,每个样例的第一行是两个整数n和m,(1≤m≤n;≤100,000)。如果n和m为0表示输入结束,这个样例不需要处理。第二行是n个整数ai,0≤ai≤1000…

精确掌控并发:固定时间窗口算法在分布式环境下并发流量控制的设计与实现

这是《百图解码支付系统设计与实现》专栏系列文章中的第(14)篇。点击上方关注,深入了解支付系统的方方面面。 本篇主要介绍分布式场景下常用的并发流量控制方案,包括固定时间窗口、滑动时间窗口、漏桶、令牌桶、分布式消息中间件…

力扣每日一练(24-1-14)

做过类似的题,一眼就是双指针,刚好也就是题解。 if not nums:return 0p1 0 for p2 in range(1, len(nums)):if nums[p2] ! nums[p1]:p1 1nums[p1] nums[p2]return p1 1 根据规律,重复的数字必定相连,那么只要下一个数字与上一…

Fluent 动网格应用:2.5D 网格重构

1 概述 2.5D 网格重构是一种快速网格重构方法,主要应用于涡旋压缩机等存在复杂平面运动且无法简化为二维计算的问题。 涡旋压缩机工作原理(视频源:维基百科) 适用于 2.5D 动网格的问题特点: 计算域几何形状为柱体类形…

八. 实战:CUDA-BEVFusion部署分析-导出带有spconv的SCN网络的onnx

目录 前言0. 简述1. 使用spconv进行SCN的推理测试2. 导出onnx3. 补充-装饰器钩子函数总结下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》,链接。记录下个人学习笔记,仅供自己参考 本次课程我们来学习下课程第八章——实战&#x…

反向代理+web集群+mysql mha实验总结

一、实验步骤 1、部署框架前准备工作 服务器类型部署组件ip地址DR1调度服务器 主(ha01)KeepalivedLVS-DR192.168.86.13DR2调度服务器 备 (ha02)KeepalivedLVS-DR192.168.86.14web1节点服务器 (slave01)NginxTomcatMySQL 备MHA managerMHA node192.168.8…

cmake 中的set用法

可以后面跟一串字符串 set — CMake 3.0.2 Documentation

esxi-vSphere

esxi安装 vCenterServer 安装 给予 esxi,一般一个esxi ,就安装一个 vCenter 关于 vCenter Server 安装和设置 vSphere Client安装 软件下载 VMware vSphere 8.0 download: 百度网盘链接:百度网盘 请输入提取码 链接: https://pan.baidu.com/s/1juyKl…

【Java SE语法篇】9.抽象类和接口

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 文章目录 1. 抽象类1.1 抽象类的概念1.2 抽象类的语法1.3 抽象…

【RT-DETR改进涨点】为什么YOLO版本的RT-DETR训练模型不收敛的问题

前言 大家好,我是Snu77,这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进,内容持续更新,每周更新文章数量3-10篇。 其中提到的多个版本ResNet18、ResNet34、ResNet50、ResNet101为本人根据RT-…

书生·浦语大模型实战营作业(四)

基础作业: 构建数据集,使用 XTuner 微调 InternLM-Chat-7B 模型, 让模型学习到它是你的智能小助手,效果如下图所示,本作业训练出来的模型的输出需要将不要葱姜蒜大佬替换成自己名字或昵称! 数据集 回答结果 进阶作…

指针面试题详解

文章目录 指针笔试题解析笔试题1笔试题2笔试题3笔试题4笔试题5笔试题6笔试题7笔试题8 总结 指针笔试题解析 数组名是首元素地址,两种情况除外: 1.sizeof(数组名) , 这是这是计算整个数组的大小,单位是字节; 2.&数组名 , 得出的是整个数组的地址; 笔试题1 #include<st…

Error: Cannot find module ‘vue-template-compiler‘ 问题解决

启动Vuepress项目时报了如下错误&#xff1a;Error: Cannot find module vue-template-compiler Error: Cannot find module vue-template-compiler Require stack: - /usr/local/lib/node_modules/vuepress/node_modules/vue-loader/lib/compiler.js - /usr/local/lib/node_…

4bit/8bit 启动 Mixtral 8*7B 大语言模型

4bit/8bit 启动 Mixtral 8*7B 大语言模型 0. 背景1. 修改代码 0. 背景 个人电脑配置实在难以以 float16 运行 Mixtral 8*7B 大语言模型&#xff0c;所以参数 4bit 或者 8bit 来启动。 实际测试结果&#xff0c;4bit 时推理速度明显变快了&#xff0c;8bit 时推理也非常慢。 …

代码随想录day16

104.二叉树的最大深度 题目&#xff1a;给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例&#xff1a; 给定二叉树 [3,9,20,null,null,15,7]&#xff0c; 做这道题之前需要先…

vim复制剪切删除

在 Vim 中&#xff0c;复制操作可以通过以下方式进行&#xff1a; 复制一行&#xff1a;在命令模式下&#xff0c;将光标移动到要复制的行&#xff0c;然后按 yy 进行复制。例如&#xff1a;yy复制某几个字&#xff1a;在命令模式下&#xff0c;按 v 进入可视模式&#xff0c;…

Jenkins-执行脚本案例-初步认识JenKins的使用

环境搭建 docker pull jenkins/jenkins:2.440 docker run -d -p 10240:8080 -p 10241:50000 -v /env/liyong/data/docker/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:2.440 #在挂载的目录下去修改仓库地址 vim hudson…

vulhub中的Nginx漏洞的详细解析

Nginx漏洞 1.cd到nginx_parsing_vulnerability cd /opt/vulhub/nginx/nginx_parsing_vulnerability 2.执行docker-compose up -d 3.查看靶场是否开启成功 dooker ps 4.访问浏览器 因为这里是80端口所以直接使用ip就能访问成功 5.上传图片 注意这里的图片是含有一句话木马的图…

【Vue3】2-13 : 章节总结

本书目录&#xff1a;点击进入 一、总结内容 二、习题 2.1 【选择题】以下Vue指令中&#xff0c;哪些指令具备简写方式&#xff1f; 2.2 【编程题】以下Vue指令中&#xff0c;哪些指令具备简写方式&#xff1f; &#xff1e; 效果 &#xff1e; 代码 一、总结内容 了解核…