搭建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

.

vue.js+koa2项目实战(四)搭建koa2服务端的更多相关文章

  1. vue.js的项目实战

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由蔡述雄发表于云+社区专栏 需求背景 组件库是做UI和前端日常需求中经常用到的,把一个按钮,导航,列表之类的元素封装起来,方便日常使用, ...

  2. vue.js及项目实战[笔记]— 03 vue.js插件

    一. vue补充 1. 获取DOM元素 救命稻草,document.querySelector 在template中标示元素`ref = "xxx" 在要获取的时候,this.$r ...

  3. vue.js及项目实战[笔记]— 05 WebPack

    一. 历史介绍 1. 规范 AMD Commonjs||CMD UMD 参考:认识AMD.CMD.UMD.CommonJS 2. 工具 npm bower webpack browserify 参考: ...

  4. vue.js及项目实战[笔记]— 01 vue.js

    一. vue基础 1. 历史介绍 angular 09年,年份较早,一开始大家是拒绝的 react 2013年,用户体验较好,直接拉到一堆粉丝 vue 2014年,用户体验较好 前端框架与库的区别 j ...

  5. vue.js及项目实战[笔记]— 02 vue.js基础

    一. 基础 1. 注册全局组件 应用场景:多出使用的公共性能组件,就可以注册成全局组件,减少冗余代码 全局APIVue.component('组件名','组件对象') 2.附加功能:过滤器&监 ...

  6. vue.js及项目实战[笔记]— 04 axios

    一. axios 1. 基本使用 axios.method('url',[,...data],options) .then(function(res){ }) .catch(function(err) ...

  7. Web前端-Vue.js必备框架(四)

    Web前端-Vue.js必备框架(四) 计算属性: <div id="aaa"> {{ message.split('').reverse().join('') }} ...

  8. miniFTP项目实战四

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

  9. React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了

    原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...

  10. Centos6.9 搭建rsync服务端与客户端 案例:全网备份项目

    rsync的企业工作场景说明 1)定时备份 1.1生产场景集群架构服务器备份方案项目 借助cron+rsync把所有客户服务器数据同步到备份服务器 2)实时复制 本地数据传输模式(local-only ...

随机推荐

  1. ruby 发送邮件

    产品构建.打包.部署完需要发送邮件通知相关人员进行验证.请看过程 #encoding:utf-8 require 'mail' #~ branch = ARGV.to_s.sub('[','').su ...

  2. C++ 编程笔记

    图片有点大,请耐心下载!

  3. 【bzoj1822】[JSOI2010]Frozen Nova 冷冻波 计算几何+二分+网络流最大流

    题目描述 WJJ喜欢“魔兽争霸”这个游戏.在游戏中,巫妖是一种强大的英雄,它的技能Frozen Nova每次可以杀死一个小精灵.我们认为,巫妖和小精灵都可以看成是平面上的点. 当巫妖和小精灵之间的直线 ...

  4. 无序字母对 character

    无序字母对 character 题目描述 给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒).请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现. 输入 ...

  5. Robot Framework通过Python SMTP进行email收发测试。

    工作中需要对发送的邮件进行过滤,方法基本属于ACL控制,即查看“源/目的”邮件地址,邮件标题,邮件正文,邮件附件等进行过滤. 所以需要先模拟一下用Python能否达到邮件Client,Server的功 ...

  6. 【05】Vue 之 实例详解与生命周期

    Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着. ...

  7. Docker 常用命令总结

    Docker 常用命令总结   回到顶部 镜像相关 搜索 docker search *image_name* 下载 docker pull *image_name* 查看 docker images ...

  8. WebService 序列化和反序列化

    参考了Fish LI的Xml读取文章,写了XML序列化和反序列化的文章. 序列化:把实体列转化成XML.反序列化:把XML按一定的规则转化成需要的实体列. 序列化和反序列化化使用到的类, using ...

  9. css命名推荐

    CSS命名推荐规范:个人收藏 方便查阅 页面结构: 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体:main 页尾:footer 导 ...

  10. Eigen--简单的C++矩阵计算库

    晚上突然想写一段小C++程序,要用到矩阵求逆呀乘法呀之类的,所以找了一下有什么现成的可用的C++矩阵计算相关的库,发现有一大堆,在其中各种各样的配置,感觉比较麻烦.从方便性来说Eigen是最方便的了, ...