首页 > 其他分享 >Koa框架基础

Koa框架基础

时间:2022-11-17 14:12:02浏览次数:35  
标签:const 框架 Koa ctx app 基础 koa router

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");
});//设置监听端口


标签:const,框架,Koa,ctx,app,基础,koa,router
From: https://www.cnblogs.com/ben10044/p/16899162.html

相关文章

  • ConstraintLayout基础
    这种布局我先做个简单的介绍,我分段讲,这是相对布局的加强版基本使用(模拟相对布局)  如何实现这种布局通过ConstraintLayout直接上代码,这种怎么解释都没用,你自己试一......
  • 数字经济时代下的云计算已经成为社会的基础生产力
    知乎上有一个官方提问:“云计算技术的发展,真的会释放各行各业的生产力吗?”,截至目前已经快突破150万阅读。翻译一下题目,就是问:云计算真的让人类降本增效,创造财富的能力变强了......
  • Node基础
    模块化开发实际开发中,一个项目里会有多个js文件,如果用node一个个运行js文件不方便main.jsconstdda=require("./add.js");//.js可以省略letresult=dda(10,20);c......
  • Java基础
    Java基础语法1、注释、标识符、关键字注释单行注释//单行多行注释/*多行*/文档注释/**文档*/标识符和关键字Java所有的组成部分都需要名字。类名、变量名以及......
  • 使用 Go HTTP 框架 Hertz 进行 JWT 认证
    前言上一篇文章简单介绍了一个高性能的GoHTTP框架——Hertz,本篇文章将围绕Hertz开源仓库的一个demo,讲述如何使用Hertz完成JWT的认证与授权流程。这里要说明的......
  • flask 基础配置
    1.flask基础配置 1.1配置静态文件与模板目录 #设置静态文件static_url_path='c',template_folder='t'app=Flask(__name__,static_url_path='c',templ......
  • 脚本语言基础
    解释性语言和编译性语言的区别平台独立性是解释性语言最大的特点,平台独立意味着只需要安装相关的解释平台就可以进行解释执行解释性语言各个部分比较独立,当出现问题时,只......
  • 数据结构基础—树与二叉树(1)
    数据结构基础—树和二叉树一、树、二叉树类型定义1.树的定义a.定义树是一种非线性结构,是具有相同特征的数据元素的集合(同质/类)数据对象D:D是具有相同特征的数据元......
  • 第七章第1节: 百万架构课-智能互联网之开源框架篇
                       ......
  • 牛客java基础语法在线编程-知识点小结(待完善)
    知识点小结一、输入输出Scanner类Scanner类在java.util包下,导包格式如下:importjava.util.Scanner;使用示例:importjava.util.Scanner;classMain01{publ......