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
.
vue.js+koa2项目实战(四)搭建koa2服务端的更多相关文章
- vue.js的项目实战
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由蔡述雄发表于云+社区专栏 需求背景 组件库是做UI和前端日常需求中经常用到的,把一个按钮,导航,列表之类的元素封装起来,方便日常使用, ...
- vue.js及项目实战[笔记]— 03 vue.js插件
一. vue补充 1. 获取DOM元素 救命稻草,document.querySelector 在template中标示元素`ref = "xxx" 在要获取的时候,this.$r ...
- vue.js及项目实战[笔记]— 05 WebPack
一. 历史介绍 1. 规范 AMD Commonjs||CMD UMD 参考:认识AMD.CMD.UMD.CommonJS 2. 工具 npm bower webpack browserify 参考: ...
- vue.js及项目实战[笔记]— 01 vue.js
一. vue基础 1. 历史介绍 angular 09年,年份较早,一开始大家是拒绝的 react 2013年,用户体验较好,直接拉到一堆粉丝 vue 2014年,用户体验较好 前端框架与库的区别 j ...
- vue.js及项目实战[笔记]— 02 vue.js基础
一. 基础 1. 注册全局组件 应用场景:多出使用的公共性能组件,就可以注册成全局组件,减少冗余代码 全局APIVue.component('组件名','组件对象') 2.附加功能:过滤器&监 ...
- vue.js及项目实战[笔记]— 04 axios
一. axios 1. 基本使用 axios.method('url',[,...data],options) .then(function(res){ }) .catch(function(err) ...
- Web前端-Vue.js必备框架(四)
Web前端-Vue.js必备框架(四) 计算属性: <div id="aaa"> {{ message.split('').reverse().join('') }} ...
- miniFTP项目实战四
项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...
- React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了
原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...
- Centos6.9 搭建rsync服务端与客户端 案例:全网备份项目
rsync的企业工作场景说明 1)定时备份 1.1生产场景集群架构服务器备份方案项目 借助cron+rsync把所有客户服务器数据同步到备份服务器 2)实时复制 本地数据传输模式(local-only ...
随机推荐
- SOCK5代理服务器
SOCK5代理服务器 简单介绍下比较好用的代理服务器,在部署过程中在内外网访问,需要切网比较麻烦,所以可以在互联网区部署sock5代理,通过配置代理切换服务器, 比较方便配置,节省时间. 官网: ht ...
- bzoj 4131: 并行博弈 (parallel)
bzoj 4131: 并行博弈 (parallel) Description lyp和ld在一个n*m的棋盘上玩翻转棋,游戏棋盘坐标假设为(x, y),1 ≤ x ≤ n,1 ≤ y ≤ m,这个游戏 ...
- CDOJ 1256 二维前缀和处理
昊昊喜欢运动 他NN 天内会参加MM 种运动(每种运动用一个[1,m][1,m] 的整数表示) 舍友有QQ 个问题 问昊昊第ll 天到第rr 天参加了多少种不同的运动 Input 输入两个数NN , ...
- JavaScript 笔记(2) -- 类型转换 & 正则表达 & 变量提升 & 表单验证
目录: typeof, null, undefined, valueOf() 类型转换 正则表达式 错误: try, catch, throw 调试工具 变量提升 strict 严格模式 使用误区 ...
- response contentType
response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据. 例如web浏览器就是通过MI ...
- C/C++学习路线
随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者.而在今天,它又扮演着什么样重要的角色呢?请往下看: 后端服务器,移 ...
- BZOJ 3640: JC的小苹果
3640: JC的小苹果 Time Limit: 15 Sec Memory Limit: 256 MBSubmit: 425 Solved: 155[Submit][Status][Discus ...
- AspNetPager分页控件的使用以及常见错误
原文发布时间为:2009-05-25 -- 来源于本人的百度文章 [由搬家工具导入] 【Repeater采用AspNetPager分页成功↓】 using System;using System.Co ...
- 插入排序Insertion sort(转)
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕. 插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内 ...
- python+requests接口自动化测试框架
1.首先,我们先来理一下思路. 正常的接口测试流程是什么? 脑海里的反应是不是这样的: 确定测试接口的工具 —> 配置需要的接口参数 —> 进行测试 —> 检查测试结果(有的需要数据 ...