likes
comments
collection
share

基于 koajs 云端 Mock 数据

作者站长头像
站长
· 阅读数 8

介绍一下:

本文主要内容是,在服务器上安装nodejs,然后使用 koajs ,将云端的 json 文件以 api 接口的形式返回,多终端可以访问同一个接口数据,静态文件也可以通过 url 访问。

一、安装 nodejs

  1. 下载地址: Node.js
https://nodejs.org/zh-cn/download/
  1. ssh 远程登入服务器

    简单说,SSH是一种网络协议,用于计算机之间的加密登录。

    SSH主要用于远程登录。假定你要以用户名root,登录远程主机host,只要一条简单命令就可以了。

    ssh root@host
    
  2. 创建 software 目录并进入

    mkdir /usr/software && cd /usr/software/
    
  3. 安装 wget

    使用 wget 可以从网上下载软件、音乐、视频

    yum -y install wget
    
  4. 下载、解压、并进入node 目录

    wget https://nodejs.org/dist/v16.17.1/node-v16.17.1-linux-x64.tar.xz	//下载
    tar xf node-v16.17.1-linux-x64.tar.xz																  //解压
    cd node-v16.17.1-linux-x64	 // 进入解压目录
    ./bin/node -v								 // 执行node命令 查看版本
    
    v16.17.1
    
  5. 解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln 命令来设置软连接:

    ln -s /usr/software/node-v16.17.1-linux-x64/bin/node /usr/local/bin/
    ln -s /usr/software/node-v16.17.1-linux-x64/bin/npm /usr/local/bin/
    ln -s /usr/software/node-v16.17.1-linux-x64/bin/npx /usr/local/bin/
    
  6. 查看是否安装成功

    node -v && npm -v && npx -v
    
    v16.17.1
    8.15.0
    8.15.0
    
  7. npm 使用淘宝镜像

    之所以切换镜像,默认情况下使用的镜像是国外镜像,速度一般比较慢,使用国内镜像速度快一些

    npm config set registry https://registry.npm.taobao.org
    npm config get registry
    

二、使用 koajs 云端 Mock 数据

  1. Koa 介绍

    Koa —— 基于 Node.js 平台的下一代Web 开发框架 Koa 它仅仅提供了一个轻量优雅的函数库,使得编写Web 应用变得得心应手, 不在内核方法中绑定任何中间件。

  2. 常用中间件

    • koa-router:路由解析
    • koa-static:配置静态服务
    • koa/cors:跨域处理
    • koa-body: request body 解析
    • koa-logger:日志记录
    • koa-views: 模板渲染
    • koa-session:session 处理
    • koa-helmet:安全防护
  3. 开始创建,存放项目目录

     mkdir /home/project && cd /home/project
    
  4. 创建项目文件夹,并进入

    mkdir koajs && cd koajs
    
  5. 初始化项目

    npm init -y
    
  6. 安装 koajs 和其它中间件

    npm install koa koa-router @koa/cors koa-static -s
    
  7. 创建入口文件 server.js

    vi server.js
    

    输入以下内容

    const Koa = require('koa');
    const app = new Koa();
    
    // response
    app.use(ctx => {
      ctx.body = 'Hello Koa';
    });
    
    let port = 3000;
    app.listen(port, () => {
      console.log('server is running on ' + ' http://localhost:' + port);
    })
    

    运行 server 文件

    node server.js
    

    浏览器打开 http://localhost:3000 ,其中 localhost 换成服务器公网 ip 地址,防火墙安全组打开 3000 端口

    http://localhost:3000
    Hello Koa
    
  8. 本地安装 nodemon

    Nodemon是一个帮助开发基于 nodejs 的应用程序的工具,当检测到目录中的文件更改时,它会自动重启node应用程序。

    npm install nodemon -D
    
  9. 修改 package.json 文件, 添加下面 2 行内容

      {
        "scripts": {
          "test": "echo \"Error: no test specified\" && exit 1",
          "dev": "nodemon server.js",
          "start": "node server.js"
        }
      }
    

    下次启动运行时,使用以下命令

    本地开发

    npm run dev
    

    本地运行

    npm run start
    
  10. 最终 server 文件内容

    const fs = require('fs')
    const Koa = require('koa')
    const Router = require('koa-router')
    const cors = require('@koa/cors');
    const staticFiles = require('koa-static')
    
    const app = new Koa()
    const router = new Router()
    
    router.get('/', async ctx => {
    
        // 返回数据
        ctx.body = "hello world!"
    })
    
    // 返回 json 格式数据
    router.get('/hello', async ctx => {
    
        const data = {
            code: 200,
            data: {
                msg: "Hello Koa!",
            }
        }
        ctx.body = data
    })
    
    // 返回 json 格式文件数据
    router.get('/data', async ctx => {
    
        ctx.body = JSON.parse(fs.readFileSync('./static/data.json'));
    })
    
    
    // 将koa和中间件连起来
    app.use(cors())
    app.use(router.routes())
    
    /**
     *  在加了router.allowedMethods()中间件情况下,
     *  如果接口是get请求,而前端使用post请求,会返回405 Method Not Allowed ,提示方法不被允许 ,并在响应头有添加允许的请求方式;
     *  而在不加这个中间件这种情况下,则会返回 404 Not Found找不到请求地址,并且响应头没有添加允许的请求方式 。
     */
    app.use(router.allowedMethods())
    
    // 去 public 目录找静态文件,访问 URL 是不加 public
    app.use(staticFiles('./public'));
    
    let port = 3000;
    app.listen(port, () => {
        console.log('server is running on ' + ' http://localhost:' + port)
    })
        
    
  11. 最后查看一下目录结构

    Linux tree 命令用于以树状形式列出目标目录及其底下所有子目录和文件

    yum -y install tree
    

    查看树状目录结构

    tree -I "node_modules"
    
    .
    ├── package.json
    ├── package-lock.json
    ├── public
    │   └── images
    │       └── photo.png
    ├── server.js
    └── static
        └── data.json
    

    其中 static 目录放的是 json 文件,public 目录放的是对外公开的静态资源文件。

  12. 通过浏览器访问一下接口地址

    其中 localhost 换成服务器公网 ip 地址

    http://localhost:3000/
    http://localhost:3000/data
    http://localhost:3000/images/photo.png