【九月打卡】第9天 Node.js开发博客——Koa2简介、介绍路由、实现session
2022/9/17 4:17:14
本文主要是介绍【九月打卡】第9天 Node.js开发博客——Koa2简介、介绍路由、实现session,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程信息
课程名称: Node.js+Express+Koa2+开发Web Server博客
课程章节: 第6章 博客项目之登录
课程讲师: 双越
课堂笔记
1、Koa2简介
1.基本特点
(1)express中间件是异步回调,koa2原生支持async/await(而express不支持)。
(2)新开发的框架和系统,都基于koa2,例如:egg.js。
(3)express虽然未过时,但是koa2肯定是未来趋势。
Egg.js 是什么? - 为企业级框架和应用而生
https://eggjs.org/zh-cn/intro/
2.课程基本目录
async/await语法介绍,安装和使用koa2。
开发接口,连接数据库,实现登录,日志记录。
分析koa2中间件原理。
3.async await
1、await后面可以追加promise对象,获取resolve的值。
2、await必须包裹在async函数里面。
3、async函数执行返回的也是一个promise对象。
4、try-catch截获promise中的reject。
4.使用脚手架安装
全局安装:npm i koa-generator -g
创建脚手架:koa2 blog-koa2(之后再进入文件夹中,再npm i安装)
5.安装nodemon
使用nodemon监测文件变化,自动重启node。
使用cross-env设置环境变量,兼容mac、linux和windows。
具体操作:
安装nodemon和cross-env:npm i nodemon cross-env --save-dev
在package.json中配置:
“scripts”: {
“start”: “node bin/www”,
“dev”: “cross-env NODE_ENV=dev ./node_modules/.bin/nodemon bin/www”,
“prd”: “cross-env NODE_ENV=production pm2 start bin/www”,
“test”: “echo “Error: no test specified” && exit 1”
},
开启koa2:npm run dev,访问地址:http://localhost:3000
2、文件说明
1.文件夹目录
/bin/www:启动server的文件,在里面可以修改端口号
/public:与前端相关的静态文件
/routes/index.js:路由配置文件
/views:前端的模板
2.app.js文件说明
const Koa = require('koa') const app = new Koa() // 对应的是views文件夹 const views = require('koa-views') // postData中JSON格式处理的 const json = require('koa-json') // 错误处理 const onerror = require('koa-onerror') const bodyparser = require('koa-bodyparser') // 日志处理 const logger = require('koa-logger') // 路由处理(引入路由) const index = require('./routes/index') const users = require('./routes/users') const blog = require("./routes/blog") const user = require("./routes/user") // 错误监测 onerror(app) // app.use:注册中间件 app.use(bodyparser({ enableTypes:['json', 'form', 'text'] })) app.use(json()) app.use(logger()) // 下面这两段代码与前端有关 app.use(require('koa-static')(__dirname + '/public')) app.use(views(__dirname + '/views', { extension: 'pug' })) // logger app.use(async (ctx, next) => { const start = new Date() // next()实质上是一个async函数,返回的是promise对象,写成看似同步的方法 await next() // 当前请求的耗时 const ms = new Date() - start console.log(`${ctx.method} ${ctx.url} - ${ms}ms`) }) // 路由处理(注册路由) app.use(index.routes(), index.allowedMethods()) app.use(users.routes(), users.allowedMethods()) app.use(blog.routes(), blog.allowedMethods()) app.use(user.routes(), user.allowedMethods()) // 错误处理 app.on('error', (err, ctx) => { console.error('server error', err, ctx) }); module.exports = app
这篇关于【九月打卡】第9天 Node.js开发博客——Koa2简介、介绍路由、实现session的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-28Vue入门教程:从零开始搭建第一个Vue项目
- 2024-12-28Vue CLI入门指南:快速搭建Vue项目
- 2024-12-28Vue3基础知识入门教程
- 2024-12-28Vue3公共组件开发与使用入门教程
- 2024-12-28Vue CLI学习:新手入门教程
- 2024-12-28Vue CLI学习:轻松入门与实践指南
- 2024-12-28Vue3公共组件学习入门指南
- 2024-12-28Vue3公共组件学习:从入门到上手实战
- 2024-12-28Vue3学习:从入门到初级实战教程
- 2024-12-28Vue3学习:新手入门与初级教程