当前位置: 首页 > news >正文

湖北省建设主管部门网站白沟做网站

湖北省建设主管部门网站,白沟做网站,域名网站空间,网站开发架构前言 Nodejs 提供了 http 能力,我们通过如下代码可以快速创建一个http server服务 const http require(http);http.createServer((req, res) > {res.write(hello\n);res.end();}).listen(3000);使用nodejs提供的原生能力启动一个http server并不麻烦&#xff…

前言

Nodejs 提供了 http 能力,我们通过如下代码可以快速创建一个http server服务

const http = require('http');http.createServer((req, res) => {res.write('hello\n');res.end();}).listen(3000);

使用nodejs提供的原生能力启动一个http server并不麻烦,但是拓展额外的能力就比较麻烦,比如支持路由router,静态资源,页面模板等。

插件机制是目前非常流行的拓展能力的设计方式,Koa框架是基于插件机制封装出来的一个Node HTTP框架,我将简单记录一下Koa的插件机制以及丰富的插件。

快速启动

// app.js
const Koa = require('koa');
const app = new Koa();app.use(async ctx => {ctx.body = 'Hello World';
});app.listen(9999,()=>{console.log('App start on port: 9999')
});
// package.json
{"scripts": {"dev": "node app.js"}
}

中间件Middleware(洋葱模型)

通过 Koa.use 将中间件注册到 koa应用中,中间件可以注册N个

我们可以通过插件机制个性化功能,提供给别人复用

中间件格式 async (ctx,next)=>{}

  • ctx => context对象,包含request,response对象,我们可以通过ctx来处理自己的业务需求
  • next ,promise对象,可以通过await next(),让程序执行下一个中间件,执行完后再执行当前中间件next下面的逻辑
const Koa = require('koa');const app = new Koa();app.use(async(ctx,next)=>{console.log('middleware one in')await next();console.log('middleware one out')
})app.use(async(ctx,next)=>{console.log('middleware two in')await next();console.log('middleware two out')
})app.use(async(ctx,next)=>{console.log('middleware three in')await next();console.log('middleware three out')
})app.listen(9999, () => {console.log("app started! port:9999");
});

运行结果

middleware one in
middleware two in
middleware three in
middleware three out
middleware two out
middleware one out

中间件运行过程

常用中间件

Koa Router

作为一个HTTP server,处理不同path的请求是最常见的问题,koa router就是专门处理路由分发的中间件

主程序

const Koa = require('koa');
const Router = require('koa-router');const app = new Koa();
const router = new Router();router.get('/',async(ctx)=>{ctx.type = 'html';ctx.body = '<h1>hello world!</h1>';
})app.use(router.routes());
app.use(router.allowedMethods())app.listen(9999, () => {console.log("app started! port:9999");
});

运行结果

属性简介

Router实例上提供了http的多种请求方式 get post put delete等等。router的请求方法会接受两个参数,第一个参数是匹配的请求的路径 path,第二个参数是处理逻辑的函数。

Router的 routes,allowedMethods方法返回参数,是koa实例接受中间件格式。

Koa View

页面渲染器,支持多种成熟的模版解析引擎。

npm add koa-view ejs

主程序代码

//app.js
const Koa = require('koa');
const Router = require('koa-router');
const views = require('koa-views');const app = new Koa();
const router = new Router();app.use(views(__dirname + '/views', {map: {html: 'ejs'}
}))router.get('/home',async(ctx)=>{await ctx.render('home',{words:'欢迎你'})
})app.use(router.routes());
app.use(router.allowedMethods())app.listen(9999, () => {console.log("app started! port:9999");
});

html模版

// views/home.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>乐闻世界</title>
</head><body>乐闻世界<%= words %>
</body></html>

运行效果

Koa Static

koa 支持静态资源的请求

相关依赖

yarn add koa-static

主程序

const Koa = require('koa');
const static = require('koa-static');const app = new Koa();app.use(static(__dirname + '/statics'))app.listen(9999, () => {console.log("app started! port:9999");
});

运行效果

http://www.yayakq.cn/news/163918/

相关文章:

  • 肇庆建网站服务网站维护服务器
  • 做企业网站的费用挂什么科目seo排名优化方法
  • 关于设计的网站seo权威入门教程
  • 什么是网站名称文件夹手机软件开发外包
  • 电子商务网站建设技术规范wordpress plugin 开发
  • 网站建设页面广西建设厅网站资质查询
  • 电子公司网站设计邢台公司网站建设
  • jsp做的网站运行都需要什么做自己的第一个网站
  • 网站中怎么做搜索框连锁销售官网
  • 苏州建网站的公司一站式服务公司深圳福田区住房和建设局网站
  • 中国建筑土木建设有限公司网站wordpress能给手机发短信吗
  • 如何用电脑做网站服务器网页制作图片切换
  • 延吉网站开发福州的网站建设
  • linux网站架设怎么做建设电影网站需要什么
  • 网站开发案例详解光盘下载如何做网站详细步骤
  • 当前网站开发什么语言网站建设与管理专业题目
  • 做网站(信科网络)网络技术公司
  • shopnc本地生活o2o网站源码江苏网站制作企业
  • 如何做网站站内搜索功能开发一个公众号需要多少钱
  • 南京做公司网站的公司青岛城运控股集团
  • 下载asp做网站怎么用qq相册做网站
  • 常德做网站公司哪家好广西智能网站建设报价
  • 国外用的网站小程序小程序开发
  • 青岛cms建站系统物流网站查询
  • 郑州做手机网站建设网站建设需要哪些工具与知识
  • 制作自己的个人网站移动端网站开发语言
  • 首涂模板网站成都好玩的地方
  • 手机如何搭建网站东莞市建设局网站首页
  • 徐州网站建设方案维护170个可带链接锚文本外链的网站论坛
  • 做钓鱼网站音乐网站前端模板