vue全家桶+Koa2开发笔记(6)--app开发
1.环境配置
1.1 使用nuxt脚手架 https://zh.nuxtjs.org/guide/installation
1.2 在node中不支持使用 import,例如修改node的启动文件 server/index.js 中: const Koa = require('koa') 为 import Koa from 'koa'
就会报错:

解决方法:
步骤一:在json文件中修改 dev和start命令:
"scripts": {
"dev": "cross-env NODE_ENV=development nodemon server/index.js --watch server --exec babel-node",
"start": "cross-env NODE_ENV=production node server/index.js --exec babel-node",
},
步骤二:新建.babelrc 文件
{
"presets":["es2015"]
}
步骤三:安装
npm install babel-preset-es2015 npm install babel-cli -S
问题二:不支持scss
安装 npm install sass-loader node-sass
2. 快速编辑html . 在vscode中 输入 scaffold ,快速生成vue模板
3. nuxtjs中请求数据,我们使用 Nuxt 官方提供的 @nuxtjs/axios 安装后,在 nuxt.config.js 中加上:
export default {
...
modules: [
'@nuxtjs/axios'
],
...
}
就可以在页面中通过 this.$axios.get 来获取数据,不需要在每个页面都单独引入 axios.
//验证接口
router.post('/verify', async (ctx, next) => {
let username = ctx.request.body.username
const saveExpire = await Store.hget(`nodemail:${username}`, 'expire')
if (saveExpire && new Date().getTime() - saveExpire < 0) {
ctx.body = {
code: -1,
msg: '验证请求过于频繁,1分钟内1次'
}
return false
}
//发邮件功能
let transporter = nodeMailer.createTransport({
service: 'qq',
auth: {
user: Email.smtp.user,
pass: Email.smtp.pass
}
})
//接受的信息
let ko = {
code: Email.smtp.code(),
expire: Email.smtp.expire(),
email: ctx.request.body.email,
user: ctx.request.body.username
} let mailOptions = {
from: `"认证邮件" <${Email.smtp.user}>`,
to: ko.email,
subject: '《慕课网高仿美团网全栈实战》注册码',
html: `您在《慕课网高仿美团网全栈实战》课程中注册,您的邀请码是${ko.code}`
}
//开始发送
await transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error)
} else {
Store.hmset(`nodemail:${ko.user}`, 'code', ko.code, 'expire', ko.expire, 'email', ko.email)
}
})
ctx.body = {
code: 0,
msg: '验证码已发送,可能会有延时,有效期1分钟'
}
})
5 . 中间件可以使您的自定义的函数在渲染页面之前运行
middleware: async (ctx)=>{
let {status,data:{code}} = await ctx.$axios.get('/users/exit')
if(status == 200 && code == 0){
window.location.href = '/'
}
}
注意code的获取等同于下面
middleware: async (ctx) => {
let {status,data}=await ctx.$axios.get('/users/exit')
if(status===200&&data&&data.code===0){
window.location.href='/'
}
}
使用中间件获取方式和异步await等同于下面:
created :function(){
this.$axios.get('/users/exit').then((res)=>{
if(res.status == 200 && res.data.code == 0){
window.location.href = '/'
}
})
}
vue全家桶+Koa2开发笔记(6)--app开发的更多相关文章
- vue全家桶+Koa2开发笔记(7)--登陆注册功能
1 文件结构:pages中放置页面代码:server 分为 dbs 和interface两个文件夹: dbs设置有关数据库的代码:interface设置接口信息: 2.2 先看dbs的,在dbs的配置 ...
- vue全家桶+Koa2开发笔记(5)--nuxt
1. nuxt项目初始化报错 下面是使用 koa 模板方法初始化一个项目,使用该方法需要将 nuxt 的版本降至1.4.2: 官方 https://zh.nuxtjs.org/guide/instal ...
- vue全家桶+Koa2开发笔记(2)--koa2
1. 安装koa脚手架的时候 执行命令 koa2 -e koa-learn 注意要使用-e的方式,才会生成ejs的模板 2. async await的使用方法:存在的意义:提高promise的可读性 ...
- vue全家桶+Koa2开发笔记(1)--vuex
1. 安装webpack的问题: webpack坑系列--安装webpack-cli 2. vue-cli(vue脚手架)超详细教程 3. 在命令行中使用 touch 执行新建文件: 4. 关 ...
- vue全家桶+Koa2开发笔记(8)--开发网页
1.使用 mongoose 动态倒入数据 mongoimport -d student -c areas areas.dat -d 后面是数据库名称: -c后面是表名称 最后是数据源 2.使用vue的 ...
- vue全家桶+Koa2开发笔记(4)--redis
redis用来在服务器端存放session 1 安装redis brew install redis 启动redis redis-server 2 安装两个中间件 npm i koa-ge ...
- vue全家桶+Koa2开发笔记(3)--mongodb
1. 安装 momgodb brew install mongodb安装成功后执行 which mongod启动:mongod 2. 下载可视化操作数据库的软件 https://robomongo.o ...
- 项目- Vue全家桶实战去哪网App
最近在学习Vue,花了几天时间跟着做了这个项目,算是对学习Vue入门的一个总结,欢迎同学们star 去哪网APP
- [在线+源码]vue全家桶+Typescript开发一款习惯养成APP
# vue-ts-daily 基于Vue.js的2.5.13版本和TypeScript编写的模仿原生应用的WebApp. [源码地址](https://github.com/xiaomuzhu/vue ...
随机推荐
- python实现用户登录界面
要求 输入用户名密码正确,提示登录成功, 输入三次密码错误,锁定账户. 实现原理: 创建两个文件accout,accout_lock accout记录用户名,密码 accout root 1qazxs ...
- Grafana配置SingleStat图表信息(三)
Grafana是一个用于展示数据的工具,配置数据源,直接连接数据库.(这里的数据库应该是结果库,直接需要给用户看的结果数据信息) SingleStat : 想用来展示单一数据信息的图表,效果图如图 ( ...
- asp.net webapi 返回json结果的方法
第一种: public static void Register(HttpConfiguration config) { //1.将默认的xml格式化程序清除 GlobalConfiguration. ...
- 异常处理机制中的return关键字
Java中,执行try-catch-finally语句需要注意: 第一:return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂 ...
- 项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved 解决方法
Error: The import javax.servlet cannot be resolved The import javax.servlet.http.HttpServletRequest ...
- powershell玩转litedb数据库-第二版
powershell可以玩nosql数据库吗?答案是肯定的.只要这个数据库兼容.net,就可以很容易地被powershell使用. 发文初衷:世界上几乎没有讲powershell调用nosql的帖子, ...
- ACID/CAP/BASE 理论知识
ACID是事务的四大特性,想要成为事务,必须具备这四点. Atomicity 原子性体现在对于一个事务来讲,要么一起执行成功要么一起失败,执行的过程中是不能被打断或者执行其他操作的. Consiste ...
- 代码改变世界 | 如何封装一个简单的 Koa
下面给大家带来:封装一个简单的 Koa Koa 是基于 Node.js 平台的下一代 web 开发框架 Koa 是一个新的 web 框架,可以快速而愉快地编写服务端应用程序,本文将跟大家一起学习:封装 ...
- day 关于生成器的函数
def average(): count=0 toatal=0 average=0 while True: value=yield average toatal+=value count+=1 ave ...
- setcookie
cookie 中值的部分在发送的时候会被自动用 urlencode 编码并在接收到的时候被自动解码并把值赋给与自己同名的 cookie 变量 首先声明,浏览的Cookie操作都是通过HTTP Head ...