• vue.js+koa2项目实战(四)搭建koa2服务端


    搭建koa2服务端

    安装两个版本的koa

    一、版本安装

    1.安装 koa1

    npm install koa -g

    注:必须安装到全局

    2.安装 koa2

    npm install koa@2 -g
    

    二、创建项目

    1.安装 koa 生成器 (koa1 和 koa2 都用此生成器)

    npm install koa-generator -g
    

    2. koa1 生成一个 test 项目,切到 test 目录并下载依赖

    koa test
    cd test
    npm install
    运行:npm start
    访问:http://localhost:3000
    

    3.创建 koa2 项目

    koa2 生成一个 test 项目,切到 test 目录并下载依赖

    koa2 test
    cd test
    npm install
    运行:npm start
    访问:http://localhost:3000
    

    4.axios 向 koa2 发送参数

    Login.vue

    <template>
      <table>
        <tr>
          <!-- 登录 -->
          <td>
            <form>
              <table align="center">
                <tr>
                  <td align="right">email:</td>
                  <td align="right">
                    <el-input name="email" placeholder="请输入email"></el-input>
                  </td>
                </tr>
                <tr>
                  <td align="right">密码:</td>
                  <td align="right">
                    <el-input type='password' name="pwd"></el-input>
                  </td>
                </tr>
                <tr>
                  <td colspan="2" align="center">
                    <el-button type="primary">登录</el-button>
                  </td>
                </tr>
              </table>
            </form>
          </td>
          <!-- 注册 -->
          <td>
            <form name="zhuceForm">
              <table align="center">
                <tr>
                  <td align="right">email:</td>
                  <td align="right">
                    <el-input name="email" placeholder="请输入email"></el-input>
                  </td>
                </tr>
                <tr>
                  <td align="right">密码:</td>
                  <td align="right">
                    <el-input type='password' name="pwd"></el-input>
                  </td>
                </tr>
                <tr>
                  <td align="right">重复密码:</td>
                  <td align="right">
                    <el-input type='password' name="repwd"></el-input>
                  </td>
                </tr>
                <tr>
                  <td align="right">昵称:</td>
                  <td align="right">
                    <el-input name="nicheng"></el-input>
                  </td>
                </tr>
                <tr>
                  <td colspan="2" align="center">
                    <el-button type="primary" @click='zhuce'>注册</el-button>
                  </td>
                </tr>
              </table>
            </form>
          </td>
        </tr>
      </table>
    </template>
    
    <script>
    import axios from 'axios'
    export default {
      methods:{
        zhuce:function() {
          let formObj = {};
          formObj.email = zhuceForm.email.value;
          formObj.pwd = zhuceForm.pwd.value;
          formObj.repwd = zhuceForm.repwd.value;
          formObj.nicheng = zhuceForm.nicheng.value;
    
          // 向服务器传参
          axios.post('http://localhost:3000/users/zhuce',formObj)
            .then(function(res){
              console.log(res);
              alert(res.data);
            })
            .catch(function(err){
              console.log(err);
            })
        }
      }
    }
    </script>
    

    5.koa2 配置 路由

    6.koa 跨域访问:

    (1)安装插件

    npm install koa-cors --save-dev

    (2)项目的 app.js 中

    var cors = require('koa-cors')
    
    app.use(cors())  // 放在route前面
    

    app.js

    const Koa = require('koa')
    const app = new Koa()
    const views = require('koa-views')
    const json = require('koa-json')
    const onerror = require('koa-onerror')
    const bodyparser = require('koa-bodyparser')
    const logger = require('koa-logger')
    // 解决跨域访问问题
    var cors = require('koa-cors')
    
    const index = require('./routes/index')
    const users = require('./routes/users')
    
    // error handler
    onerror(app)
    
    // middlewares
    app.use(bodyparser({
      enableTypes:['json', 'form', 'text']
    }))
    app.use(json())
    app.use(logger())
    app.use(require('koa-static')(__dirname + '/public'))
    
    app.use(views(__dirname + '/views', {
      extension: 'pug'
    }))
    
    // logger
    app.use(async (ctx, next) => {
      const start = new Date()
      await next()
      const ms = new Date() - start
      console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
    })
    
    // 使用 cors
    app.use(cors())
    
    // routes
    app.use(index.routes(), index.allowedMethods())
    app.use(users.routes(), users.allowedMethods())
    
    // error-handling
    app.on('error', (err, ctx) => {
      console.error('server error', err, ctx)
    });
    
    module.exports = app
    

    .

  • 相关阅读:
    String数组转换成Integer数组
    码云远程仓库用户名和密码修改了,本地如何删除修改?
    Git操作过程(码云)
    SpringCloud应用之配置中心Nacos
    SpringCloud应用之网关GateWay
    SpringCloud应用之熔断器Hystrix
    SpringCloud应用之服务调用Feign
    装饰者设计模式
    Spring 自动装配及其注解
    Spring Bean自动装配有哪些方式?
  • 原文地址:https://www.cnblogs.com/crazycode2/p/7657011.html
Copyright © 2020-2023  润新知