NodeJs脚手架(Koa)的简单使用

文章目录

  • 前言
  • 一、与express的区别
    • express-generator 提供的功能如下
    • koa-generator 提供的功能如下
    • 两个生成器共同支持的项目骨架描述如下
  • 二、使用步骤
    • 安装 Koa 生成器
    • 使用koa2创建项目
    • PM2的使用
  • 三、基础目录说明
    • 配置文件package.json
    • 入口文件 bin/www
    • 核心文件 app.js
    • routes 路由
    • public 静态目录
    • views 视图
  • 总结
    • `如有启发,可点赞收藏哟~`


前言

koa-generator 是用于生成 Koa 项目骨架的生成器,虽然比较精简,但它的结构十分清晰,足以满足一般的开发需求。


一、与express的区别

koa实际也是express的升级版本

express-generator 提供的功能如下

  • 生成项目骨架,集成必要的中间件。
  • 约定目录结构。
  • 支持 css 预处理器。

koa-generator 提供的功能如下

  • 生成项目的骨架,集成必要的中间件。
  • 约定目录结构(和 express-generator 约定的结构一模一样)

两个生成器共同支持的项目骨架描述如下

  • app.js 为入口
  • bin/www 为启动入口
  • 支持静态服务器,即 publish 目录
  • 支持 routes 目录
  • 支持 views 视图目录
  • 默认将 Pug (之前的名字是 Jade)作为模板引擎。

二、使用步骤

安装 Koa 生成器

npm install -g koa-generator

koa-generator 支持 v1 和 v2两个版本 ,安装后可使用 koa 和 koa2 命令创建 Koa 项目模板,当前以koa2版本为例

使用koa2创建项目

创建admin项目

koa2 admin

安装依赖

npm i
  • npm run start 开发阶段的脚本,使用时代码发生变动,需要重新启动。

  • npm run dev 也是开发阶段使用的脚本,使用时代码会发生变动, nodemon 会自动启动 Node.js 进程。

  • npm run prd 是生产环境使用的脚本,通过 pm2 来启动工程,默认按照 CPU 核数来启动对应的进程数,是目前最流行的方式。(需全局安装pm2,执行npm i pm2 -g即可)

  • npm run test 只会打印未实现日志,和 Express 里的用法是一样的。

在这里插入图片描述

PM2的使用

开启prd之后,会开启进程,需要使用pm2进行管理

在这里插入图片描述

pm2是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能

  • 1、 pm2需要全局安装npm install -g pm2
  • 2、进入项目根目录
  • 2.1 启动进程/应用 pm2 start bin/wwwpm2 start app.js
  • 2.2 重命名进程/应用 pm2 start app.js --name wb123
  • 2.3 添加进程/应用 watch pm2 start bin/www --watch
  • 2.4 结束进程/应用 pm2 stop www
  • 2.5 结束所有进程/应用 pm2 stop all
  • 2.6 删除进程/应用 pm2 delete www
  • 2.7 删除所有进程/应用 pm2 delete all
  • 2.8 列出所有进程/应用 pm2 list
  • 2.9 查看某个进程/应用具体情况 pm2 describe www
  • 2.10 查看进程/应用的资源消耗情况 pm2 monit
  • 2.11 查看pm2的日志 pm2 logs
  • 2.12 若要查看某个进程/应用的日志,使用 pm2 logs www
  • 2.13 重新启动进程/应用 pm2 restart www
  • 2.14 重新启动所有进程/应用 pm2 restart all

三、基础目录说明

配置文件package.json

package.json 是 Node.js 模块定义的核心配置文件。一般有名称,版本,依赖模块,开发方式等。

入口文件 bin/www

端口号及各种监听事件

核心文件 app.js

app.js 是 Koa 的核心文件,主要包含以下 4 个部分

  • 中间件
  • 路由
  • 静态服务
  • 视图
中间件名称用途加载顺序
bodyparser解析 Post 类 HTTP 动词的 body 内容,加上 bodyparser 后就可以处理所有请求了1
json更好的支持 JSON2
logger开发阶段的日志3
koa-static提供 HTTP 静态托管服务4
koa-views视图渲染,支持模板引擎5
自定义的 logger 中间件记录日志6

routes 路由

实现api及mvc的文件目录

public 静态目录

存放各种静态文件的目录

views 视图

Koa 多采用 Pug 作为模板,使用时也可根据需要自行选择。


总结

Koa 支持三种中间件写法

  • async 函数优先级最高,最简单易懂。
  • Promise 其次。await 结合 Promise 是非常常见的,而且利用 Promise的特性是刚需,比如,通过 Promise.race 和 Promise.all 等实现并发可以在某种程度上弥补 async 函数的不足。
  • Generator 主要在 Koa v1 中使用,ES6 Generator 风格的中间件非常常见。使用时可以通过 co 库来调用 ES6 Generator,由于 co 的返回值是 Promise,所以相当于重复了 await + Promise 的用法。

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

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

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

相关文章

服装收银系统哪个最好用

服装订货系统哪个最好,可能没有一个标准的答案,但至少可以从以下几点进行选择: 1、数据批量操作:服装到货都是一批一批,如果能将条码进行批量导入,这样在这里耗去的时间就少很多了,剩下的是时间…

【赠书活动】Java程序员,你掌握了多线程吗?

文章目录 摘要01 多线程对于Java的意义02 为什么Java工程师必须掌握多线程03 Java多线程使用方式04 如何学好Java多线程赠书活动 摘要 互联网的每一个角落,无论是大型电商平台的秒杀活动,社交平台的实时消息推送,还是在线视频平台的流量洪峰&…

GIT GUI使用

文章目录 一、新建本地仓库二、推送(push) 一、新建本地仓库 在空白处右键,找到GIT GUI here, 如果没有仓库,出现的是这样的: 如果有仓库,在本地仓库里打开就是这样的: 新建本地…

docker-compose部署sonarqube 8.9 版本

官方部署文档注意需求版本 所以选择8.9版本 一、准备部署配置 1、持久化目录 rootlocalhost:/root# mkdir -p /data/sonar/postgres /data/sonar/sonarqube/data /data/sonar/sonarqube/logs /data/sonar/sonarqube/extensions rootlocalhost:/root# chmod 777 /data/sona…

AI有多恐怖?

恐怖片大行其道之季到了。世界各地的人们纷纷观看恐怖片,前往鬼屋等进行自我吓唬式娱乐。受控的“妖魔鬼怪”可能很有趣,但无法控制的事情可能真的很恐怖。例如,对某些人而言,未来的不确定性可能是场噩梦。对其他人而言&#xff0…

生成式人工智能笔记-AIGC笔记

生成式人工智能笔记-AIGC笔记 十多年前,人工智能还只是一个不被人看好的小众领域,但是现在,它却已经成了街头巷尾的热点谈资,几乎任何事情都可以和人工智能联系在一起。 人工智能包括基础层、技术层和应用层。 基础层是人工智能…

跨境电商独立站怎么获取流量 跨境电商引流的两个方法

独立站有着比SaaS和中心化站点不一样的特点,今天介绍两种引流的主要玩法: 独立站的第一种玩法是通过数据,找到爆款,搭建独立站,企业站加电商功能、交易、订单配送功能,搜索引擎seo引流法,外联渠…

Python中如何判断List中是否包含某个元素

更多资料获取 📚 个人网站:ipengtao.com 在Python中,判断一个列表(List)是否包含某个特定元素是常见的任务之一。在本文中,将深入探讨多种判断List成员包含性的方法,并提供丰富的示例代码&…

动态内存管理(扫盲式讲解)

前言:学好数据结构的三大法宝:指针、结构体、动态内存管理,指针前面讲的已经很细了,大家看完了基本上指针方法是没啥问题的 1 为什么要有动态内存的开辟? 因为动态内存的开辟是在堆区里面的,可以释放&…

添加新公司代码的配置步骤-Part2

原文地址:配置公司代码 概述 在第一部分中,我讨论并列出了在 SAP 中构建新公司代码时企业结构部分所需的任务。在这篇博客中,我将列出并讨论 FI 模块中需要配置的内容。您还记得本主题涵盖六个部分。 企业结构 - 第 1 部分 FI 配置– 第 2…

有效解决wordpress的502 Bad Gateway错误提示

摘要:最近有客户反映使用阿里云虚拟云主机,wordpress常提示502 Bad Gateway错误,网关错误是网站上遇到的常... wordpress的502 Bad Gateway错误如何修复? 第1步:偶发错误可尝试重新加载网站 偶尔出现流量突发爆增或是服…