node.js 学习 -- koa

简介: 安装 Koa 框架

一、搭建项目


1. 安装 Koa 框架

yarn add koa

2. 引入

const Koa = require("koa");
const app = new Koa();


3. 配置中间件

// ctx 所有http的上下文
// 配置中间件
app.use((ctx, next) => {
  ctx.body = "hello api";
});


4. 监听端口

app.listen(3000, () => {
  console.log("Server on 3000");
});

二、项目基本优化


1. 配置文件

安装 dotenv 包


yarn add dotenv


创建 .env 文件


APP_PORT = 8000


在当前目录下创建 config 文件夹,用来保存配置文件,并添加config.default.js


const dotenv = require("dotenv")
dotenv.config()
// 暴露
module.exports = process.env


改写 主进程内容


// 引包
const Koa = require("koa");
const app = new Koa();
// env
const { APP_PORT } = require("./config/config.default");
// ctx 所有http的上下文
// 配置中间件
app.use((ctx, next) => {
  ctx.body = "hello api";
});
app.listen(APP_PORT, () => {
  console.log("Server on 3000");
});


三、添加路由(处理不同的url请求)


路由:根据不同的 URL,调用对应处理函数


1. 安装 koa-router

yarn add koa-router


koa-router 官方文档


步骤:


导入包

实例化对象

编写路由

注册中间件


2. 导入包


const Router = require("koa-router")


3. 实例化对象


const indexRouter = new Router()


4. 编写路由


indexRouter.get('/',(ctx,next)=>{    ctx.body = "hello index"})


5. 注册中间件

app.use(indexRouter.routes())


这里需要特别注意的是,配置中间件的时候需要调用 routes 方法,不能直接传入对象


app.use(indexRouter) // 错误




会报错


四、处理路由文件


如果我们要将全部的路由文件写在 main.js 文件中,会造成代码的混乱,这一点在 express 中也遇到了,我们可以将路由请求放在一个单独的文件夹中router,分别处理不同场景的路由


1. 引入包

例如我们需要一个专门处理用户路由的文件 user.route.js ,这个文件专门处理用户路由


同时一个很重要的点:我们可以给 Router 构造函数传递一个对象{prefix: "/users"} ,用来配置请求的前缀

const router = new Router({ prefix: "/users" });


这样配置后,当我们请求 /路径时,实际上请求的是 /users/


2. 编写路由

我们在 user.route.js 中编写路由

const Router = require("koa-router");const router = new Router({ prefix: "/users" });router.get("/", (ctx, next) => {  ctx.body = " hello users";});


并暴露出 router

module.exports = router;


3. 改写 main.js

将暴露的 router 引入 main.js 中,引入中间件即可

// 引包const Koa = require("koa");const app = new Koa();// envconst { APP_PORT } = require("./config/config.default"



相关文章
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
27 0
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
69 0
|
3月前
|
JavaScript 前端开发 API
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(下)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
33 0
|
3月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(上)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
42 0
|
2月前
|
开发框架 JavaScript 前端开发
比较两个突出的node.js框架:koa和express
接上文讲述了 koa框架,这边文章比较一下这两个突出的node.js框架:koa和express
|
2月前
|
资源调度 JavaScript 关系型数据库
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
33 0
|
2月前
|
JavaScript 中间件 测试技术
|
3月前
|
资源调度 JavaScript 关系型数据库
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)(下)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
18 0
|
3月前
|
JavaScript 关系型数据库 MySQL
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)(上)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
32 0
|
JSON JavaScript 前端开发
Node.js学习笔记(十六、Express 框架)
Node.js学习笔记(十六、Express 框架)
208 0
Node.js学习笔记(十六、Express 框架)