服务端编程——初始koa
服务端编程
零、初识服务器编程
-
服务器编程一般由python、Java、nodejs等,但前端一般使用的都是nodejs来写
-
nodejs就是可以让JavaScript脱离浏览器运行,之前的js只能在浏览器中运行,就不能做一些关于资源文件的操作,现在可以脱离浏览器就可以有更多的可能性,nodejs就可
-
绝大多数后端都在:
- 读写数据库:前端是不能直接在数据库中取出数据的
- 编写API:给前端使用来拿到数据
-
一般有 commonJS(同步 服务器)、AMD(异步 浏览器)、promise
一、koa
koa基本使用
其实官网都说的挺好的了,就说下现在要用的一些操作吧:
Koa 应用程序是一个包含一组中间件函数的对象,它是按照类似堆栈的方式组织和执行的
- 导入koa:
const Koa = require('koa')
:注意这里要用ES5的require方式导入,而不用ES6的import方式 - 实例化koa对象:
const app = new Koa()
- koa对象的listen方法来监听某个服务器:
app.listen(3000)
,这里是监听3000端口 - 注册中间件函数
koa.use(中间件函数名)
中间件函数
-
在koa中,要想在用户对服务器发起请求时做点什么,就要写在中间件函数里(类似于 响应时的动作)
-
若注册了多个中间件,则运行它们的运行顺序遵循——洋葱模型,但这也是要有条件的,洋葱模型是最容易想到和理解的模型,所以只要遵循它就可使问题变得简单一些,条件就是加上async和await标识
-
async和await标识细节就不多说了,这两个标识符就是为了让函数能够同步的执行代码,不会出现意料之外的结果 详见
-
-
中间件常见写法如下,ctx是上下文信息,里面包含了请求的所有信息(如这里是path是路径,method是请求方式),next是下一个中间件函数
app.use((ctx, next) => {
if (ctx.path === '/classic/latest' && ctx.method === 'GET') {
console.log('123')
}
next()
})
koa-router 路由库
- koa-router可以处理客户向服务器发送的请求,其实这就是个路由中间件;
- 先引入koa-router模块,再进行实例化,例子如下:
const Router = require('koa-router')
const router = new Router()
// 写法一
router.get('/book/hot_list', async (ctx, next) => {
ctx.body = '/book/hot_list'
})
// 写法二
app.use((ctx, next) => {
if (ctx.path === '/book/hot_list' && ctx.method === 'GET') {
ctx.body = '/book/hot_list'
}
next()
})
- 上面例子中的两种写法含义是一样的,但上面那种就有助于模块化、更加清晰直观,且不用把所有的判断都放在一个文件里;
- 同时router实例还有post、put、get等方法,对应http各种请求方式
标签:
nodejs
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现