kindring пре 3 година
родитељ
комит
b4f83920cf
2 измењених фајлова са 103 додато и 0 уклоњено
  1. 26 0
      koa/README.md
  2. 77 0
      koa/koa使用技巧.md

+ 26 - 0
koa/README.md

@@ -0,0 +1,26 @@
+<!--
+ * @Author: your name
+ * @Date: 2021-08-19 14:48:31
+ * @LastEditTime: 2021-08-19 14:56:08
+ * @LastEditors: Please set LastEditors
+ * @Description: README
+ * @FilePath: \md-\koa\README.md
+-->
+# `Koa` 使用
+## 配置环境
+1. 安装`koa`
+```shell
+npm install --save koa
+``` 
+3. 启动`koa`服务
+```javascript
+const Koa = require('koa')
+
+const app = new Koa()
+
+app.use(async ctx => { ctx.body = 'hello world'})
+
+app.listen(3000)
+
+``` 
+5. 添加`koa`路由插件

+ 77 - 0
koa/koa使用技巧.md

@@ -0,0 +1,77 @@
+<!--
+ * @Author: your name
+ * @Date: 2021-08-19 14:56:43
+ * @LastEditTime: 2021-08-20 11:26:06
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: \md-\koa\koa使用技巧.md
+-->
+# koa使用技巧
+## koa路由相关
+### 使用koa来手动实现路由
+#### 不想写,太麻烦
+### 使用`koa-router`模块进行路由处理
+1. **安装`koa-router`**
+ <!-- tabs:start  -->
+#### **npm** 
+```shell
+npm i koa-router --save
+``` 
+#### **yarn**
+```shell
+yarn add koa-router
+```
+<!-- tabs:end -->
+2. **使用`koa-router`**
+    首先导入`koa-router`,然后实例化`koa-router`,实例化时可以传入参数[`option`]类型为`Object`,`option`可以去[githob仓库](https://github.com/ZijianHe/koa-router)进行查询。
+    其中 `option.prefix` 为路由前缀
+    在根目录下的`app.js`文件中写入下面代码块内容.
+    ```js
+    const Koa = require('koa')
+    const Router = require('koa-router')
+
+    const app = new Koa()
+    const router = new Router()
+
+    router.get('/',async ctx=>{
+        ctx.body = 'Hello World'
+    })
+
+    app.use(router.routes()).use(router.allowedMethods())
+    app.listen(3000)
+
+    ```
+    编辑完`app.js`后,在终端中用`node`来运行服务.
+    ```shell
+    node app.js
+    ```
+    > [!tip]
+    > 在浏览器中访问 [http://localhost:3000](http://localhost:3000) 可以看见一个`hello World` ,表示路由使用成功
+    
+    **使用路由前缀**
+    `koa-router`中设置路由前缀,比如用户模块下的路由为`/home/xx`形式.可以通过路由前缀来分模块写路由
+    在`koa-router`中路由前缀在实例化路由时用参数 `prefix`来进行设置
+    编辑`app.js`文件
+    ```js
+        const Koa = require('koa')
+        const Router = require('koa-router')
+
+        const app = new Koa()
+        // 传入option,设置prefix的值为home
+        const router = new Router({
+            prefix: '/home'
+        })
+
+        router.get('/',async ctx=>{
+            ctx.body = 'welcome to my home'
+        })
+        router.get('/question',async ctx=>{
+            ctx.body = '没人在家'
+        })
+
+        app.use(router.routes()).use(router.allowedMethods())
+        app.listen(3000)
+    ```
+    重新运行`app.js`
+    > [!tip]
+    > 在浏览器中访问 [http://localhost:3000/home/question](http://localhost:3000/home/question) 可以看见一个`没人在家`,表示路由前缀设置成功