Koa框架基础

Koa是一个基于Node的web服务器开发框架,通过Koa我们可以更便捷地开发web服务器。不必像上一节那样刀耕火种地从零开始写。

安装Koa

cnpm install koa --save

用koa创建服务器

const Koa = require("koa");//引入koa构造函数
const { append } = require("koa/lib/response");
const app = new Koa();//创建应用

//use引入一个中间件,中间件可以理解为一个函数,在浏览器发出请求到服务器响应之前生效
app.use(async (ctx) => {//async异步
    //ctx:上下文,存储请求的信息,也能设置响应的相关信息
    ctx.body = "hello koa"
});

append.listen(3000,() => {
    console.log("server is running");
});//设置监听端口

nodemon运行server.js

路由

上面的例子只要有请求都会响应hello koa

但实际开发中要区分不同的页面,如127.0.0.1:3000/123不应该与127.0.0.1:3000的内容一样
可以用路由加以区分

安装koa-router

cnpm install koa-router

声明

const router = require("koa-router")();//引入并执行koa-router

设置路由

const Koa = require("koa");//引入koa构造函数
const app = new Koa();//创建应用
const router = require("koa-router")();//引入并执行koa-router

router.get("/", async (ctx) => {//"/"表示首页
    ctx.body = "home page";
});
router.get("/video", async ctx => {//只有一个参数时括号可省略
    ctx.body = "video page";
});

app.use(router.routes());//在koa项目中引入router

app.listen(3000,() => {
    console.log("server is running");
});//设置监听端口

nodemon运行

  • ctx.body里可以放一些html语言
    在首页的body里修改
ctx.body = `
        <h1>标题</h1> 
        <p>这是一个文字</p>   
    `;


但是不能放一些跟路径相关的html语言,如img、css

静态文件

先下载koa-static模块

cnpm install koa-static

引入

const static = require("koa-static");

实例

const Koa = require("koa");//引入koa构造函数
const app = new Koa();//创建应用
const router = require("koa-router")();//引入并执行koa-router
const static = require("koa-static");

//__dirname可以获取项目的绝对路径
app.use(static(__dirname + "/public"));//设置静态文件目录

router.get("/", async (ctx) => {//"/"表示首页
    ctx.body = `
        <h1>标题</h1> 
        <p>这是一个文字</p>
        <img src="/images/logo.png">
    `;//img的路径默认是静态文件目录开始
});
router.get("/video", async ctx => {//只有一个参数时括号可省略
    ctx.body = "video page";
});

app.use(router.routes());//在koa项目中引入router

app.listen(3000,() => {
    console.log("server is running");
});//设置监听端口


posted @ 2022-11-17 14:03  ben10044  阅读(353)  评论(0编辑  收藏  举报