koa基础应用

不要把koa想得太复杂,他就是一个Node框架而已。

在本地应用安装好Node和koa后,先实现一下简单的服务app.js,代码如下:

const Koa = require('koa')
const app = new Koa();
app.use(async (context) => {
    context.body = 'hello Koa'
});

app.listen(3000);

console.log('服务正在启动,端口号为:3000');

执行命令:node app.js。然后在浏览器中打开http://localhost:3000/,页面显示:hello Koa。

koa基础应用_第1张图片

中间件的使用

什么是中间件呢?中间件,就是在请求和响应之间设置不同的关卡,做不同类型的工作。比如:

koa基础应用_第2张图片
安装几个常见的中间,因为是在学习,所以尽量了解多个中间件。在实际开发中,根据需要安装合适的中间件即可。

koa-router 路由
koa-onerror 错误信息
koa-bodyparser 解析body的JSON
koa-logger 日志
koa-cors 跨域
koa-static 静态资源
nodemon 热更新
debug debug模式

数据库就使用MySQL。

项目的目录结构是这样:

  1. middelware,中间件;
  2. controller:控制层、业务层
  3. config:数据库等等设置文件
  4. dbhelper:SQL语句
  5. routes:路由
  6. modal:对象层

路由

前端项目有路由,后端也有路由。前端的路由是浏览器提供监听URL的相关事件,用来进行相关的处理;

后端路由:则是拿到请求对象中的URL,根据URL来执行对应的逻辑。

koa有两种路由:一种是原生路由,通过request对象的URL属性进行判断,作相应的逻辑处理;

另一种使用koa-router中间件来实现路由。

原生路由:

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

app.use(async (context, next) => {
    const url = context.request.url;
    let content = ''
    switch (url) {
        case '/api/get/userInfo':
            content = '用户信息的接口';
            break;
        case "/api/update/userInfo":
            content = '更新用户信息的接口';
            break;
        case '/api/del/userInfo':
            content = '删除用户的接口'break;
        default:
            content = '400:没有匹配到这个接口';
            break;
    }
});


app.listen(3000, () => {
    console.log('服务正在启动,端口号为:3000');
});

中间件路由,安装好koa-router依赖之后,首先注册一下中间件:

修改一下app.js文件:

const Koa = require('koa')
const app = new Koa();
const Router = require('koa-router');

const router = new Router();
router.get('/api/get/userInfo', async (context) => {
    context.body = '获取用户信息的接口'
});

app.use(router.routes()).use(async (context) => {
    context.body = "没有匹配的接口"
})
app.listen(3000, () => {
    console.log('服务正在启动,端口号为:3000');
});

效果如图:

koa基础应用_第3张图片
同样,其他中间件,以同样的方法引入:

// 注册 onerror
onerror(app);

// 注册bodyparser
app.use(bodyparser());

app.use(logger());
app.use(require('koa-static')(__dirname,'public'));
app.use(cors());

静态服务器

静态服务器,就是提供一个读取静态文件、静态目录的作用。

koa也可以实现静态服务器的功能。有两种方式:一种是利用koa中间件【koa-static】;另一种使用原生的方式来实现。

在项目目录下的public文件夹。就是存放静态文件的。

koa基础应用_第4张图片
配置如下:

const Koa = require('koa')
const app = new Koa();
const Router = require('koa-router');
const onerror = require('koa-onerror');
const bodyparser = require('koa-bodyparser');
const logger = require('koa-logger');
const cors = require('koa-cors');
const path = require('path');
const static = require('koa-static');

const staticPath = './public'

// 注册 onerror
onerror(app);

// 注册bodyparser
app.use(bodyparser());

app.use(logger());
app.use(static(path.join(__dirname,staticPath)));



const router = new Router();
router.get('/api/get/userInfo', async (context) => {
    context.body = '获取用户信息的接口'
});

app.use(router.routes()).use(async (context) => {
    context.body = "没有匹配的接口"
})


app.listen(3000, () => {
    console.log('服务正在启动,端口号为:3000');
});

这就是koa的基本配置。

你可能感兴趣的:(Node,node.js)