Node——Koa框架基础

一、Koa框架概述

Koa是一个基于Node的web服务器开发框架,通过Koa我们可以更便捷的开发web

服务器,不必像前面那样一步步写

二、安装Koa

在安装Koa之前,先初始化一个项目

新建一个空目录,在该目录中打开命令行工具,执行

npm init

初始化完成后,执行下列命令安装Koa

npm i koa --save

三、创建服务器

const Koa = require("Koa") // 引入Koa构造函数
const app = new Koa()   // 用构造函数创建对象——创建应用


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

app的use方法可以调用一个函数(中间件),这个函数会在请求和相应之间被调用。函数可以接受两个参数。

  • ctx:上下文变量,可以获取请求与响应的相关信息。

  • next:处理下一个异步函数。

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

//use方法内的函数会在请求与响应之间执行。
app.use(async ctx => {
    ctx.body = "hello world"
})

app.listen(3000,() => {
    console.log("server is running")
});

四、路由

浏览器可以使用不同的方法发送请求,常用的方法如下所示:

  • get请求:用来获取页面或数据

  • post请求:用来提交数据,一般登录的时候,想后台发送用户名和密码可以使用。

这次主要使用get请求来获取页面,实例代码如下所示:

cnpm install --save koa-router

const Koa = require("Koa") // 引入Koa构造函数

// require("koa-router") 是一个函数所以需要调用
const router = require("koa-router")() // 引入并执行koa-router
const app = new Koa()   // 用构造函数创建对象——创建应用

// 引入中间件,中间件就是一个函数 在响应前执行
// app.use(async (ctx) => {
//   ctx.body = "hello koa"
// })

// get请求的第一个参数是路径 / 默认为首页
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")
}) // 设置监听端口

这样我们就可以实现一个有多个页面的应用程序了

五、静态文件

在网页中插入图片,需要在img标签中填写图片的地址。web应用的服务器,只有静态文件目录的文件才可以被html页面直接访问。

也就是说,我们需要先创建一个静态文件目录,然后在里面放置图片(或js,或css),才能被html页面访问。

通过下面的命令下载koa-static,可以设置静态文件目录。

npm i koa-static --save

实例代码如下

const Koa = require("Koa") // 引入Koa构造函数
// require("koa-router") 是一个函数所以需要调用
const router = require("koa-router")() // 引入并执行koa-router
const static = require("koa-static")
const app = new Koa()   // 用构造函数创建对象——创建应用

// 设置静态文件目录
app.use(static(__dirname + "/public"))
// __dirname 可以直接获取当前项目的绝对路径
// console.log(__dirname, "当前项目的绝对路径")

// 引入中间件,中间件就是一个函数 在响应前执行
// app.use(async (ctx) => {
//   ctx.body = "hello koa"
// })

// get请求的第一个参数是路径 / 默认为首页
router.get("/", async (ctx) => {
  ctx.body = `
  

标题

这是一个文章内容

` }) // 回调函数如果有一个值 可以省略括号 router.get("/video", async ctx => { ctx.body = "video page" }) app.use(router.routes()) // 在koa项目中引入router app.listen(3000, () => { console.log("server is running") }) // 设置监听端口

引入koa-static,可以得到一个static函数,通过调用这个static函数,便可以将参数的目录设置为一个静态目录了。

这样就可以在网页中看到图片了。

你可能感兴趣的:(前端笔记——Node基础,前端)