koa2
养只猫
这个作者很懒,什么都没留下…
展开
-
es6异步之await和async异步
手上的项目写好的接口已经对接完了。最近闲下来了,上家公司的主管跟我提起了前端和node.js。node必定是以后前端的一项重要技术。这次不再看视频从基础开始了,直接看自己需要的东西。说到异步就会想到promise,在es6中的await和async也是异步操作。await 和 async是建立在 promise机制之上的。不能说有了await和async就不要promise。async...原创 2018-11-18 14:02:26 · 281 阅读 · 0 评论 -
koa框架中的mongoose
node中引入mongoose后创建数据库对应的模型层,控制层目录结构(php也是类似的结构)模型层在模型层中建立.js文件。const Mongoose = require('mongoose')var user = new Mongoose.Schema({//Schema要实例化mongoose user: String, age: { t...原创 2019-03-01 14:46:49 · 508 阅读 · 0 评论 -
mongoose的增删改查
数据库的4大基本操作增删改查。先定义好模型const Mongoose = require('mongoose')var user = new Mongoose.Schema({//Schema要实例化mongoose user: String, age: { type: Number, validate: {//验证器 ...原创 2019-03-01 15:18:18 · 1027 阅读 · 2 评论 -
mongoose绑定静态和动态方法
mongoose可以通过实例化Schema绑定动态和静态方法模型const Mongoose = require('mongoose')var user = new Mongoose.Schema({ //在Schema实例上static绑定静态方法,model不同实例化就能直接使用 user.statics = { staticTest () ...原创 2019-03-01 15:29:30 · 908 阅读 · 0 评论 -
mongoose的钩子方法
现在用的vue有生命周期钩子,指定vue实例在每个生命周期的操作。那么mongoose的钩子也是一样的意思。mongoose的钩子是在Schema实例中设置的分为前置钩子和后置钩子,即执行前和执行后要进行的操作。模型const Mongoose = require('mongoose')var user = new Mongoose.Schema({ // pre前置中间件...原创 2019-03-01 16:43:17 · 1567 阅读 · 0 评论 -
mongoose连接mongodb数据库
node通过mongoose连接mongodb数据库安装npm install mongoose --saveconst Mongoose = require('mongoose')Mongoose.connect('mongodb://localhost:27017/KoaMongoose',{ auth: { "authSource": "admin" },//对应...原创 2019-03-01 14:01:15 · 820 阅读 · 3 评论 -
mongoose的联表存储和查询
数据库简单的增删改查是很容易但是真正到了项目中有些地方就需要两张甚至多张表进行关联,这样的话难度瞬间上了一个档次。mongoose给了我们很好地解决办法。模型层因为要联表所以要建立两个模型,这边我们要做的是通过order表去查询user表的参数orderconst Mongoose = require('mongoose')const order = new Mongoos...原创 2019-03-01 18:15:38 · 1942 阅读 · 0 评论 -
koa框架使用graphQL管理api
首先说说graphQL。这是一个用来管理api接口的工具。应用场景如下:项目一期首页初始化接口A需要数据B和数据C两个参数到了项目二期首页初始化接口A需要的数据多了数据D少了数据B。这样后端接口A要相应的增加数据D和删除数据B,前端也要做相应的修改。多次迭代可能有需要加回数据B这样会做大量的无用功。graphQL能让后端添加需要新增的字段而不用删除不需要的字段并且前端只拿需要用的字段。这样前...原创 2019-03-12 14:54:02 · 1179 阅读 · 1 评论 -
通过nginx代理实现koa在请求中携带cookie
最近在测试关于身份验证的实现过程和思路。之前的博客写的是使用token的方法将token存到redis数据库中。但是在几个github开源项目中看到有用cookie验证的于是就开始新的征程了...跨域(!!!ctx.headers.origin ctx.set('Access-Control-Allow-Credentials', 'true')必须设置)app.use(async (c...原创 2019-03-29 17:32:23 · 2498 阅读 · 2 评论 -
mongodb数据库(window)
学了node肯定会想去学一下mongodb这个数据库。数据库之间的对比我就不多说了选一个自己喜欢的就行了。mongodb的安装http://www.runoob.com/mongodb/mongodb-window-install.html配置数据库安装好后的目录是没有上图的MongoDB这个文件夹的,这个是后面手动添加上去的,MongoDB文件夹的目录是这样的data对应...原创 2019-03-01 11:01:58 · 252 阅读 · 0 评论 -
node存储文件的方式
作为后台语言接收保存文件也是必备的技巧。前端代码(vue)<input value="上传" ref="file" type="file" multiple @change="getFiles"> getFiles () { var that = this var FormDataImg = new FormData() ...原创 2019-03-01 10:06:19 · 2068 阅读 · 0 评论 -
koa2脚手架之koa-generator
vue-cli脚手架能很好地帮我们搭建好vue项目目录结构,同样的koa-generator脚手架可以帮我们快速搭建koa2框架的目录结构。包括接口路由koa-router和一些基本的配置安装npm install koa-generator -g安装脚手架目录koa2 server安装依赖npm install进入到server文件夹中启动nodemon app.js...原创 2018-11-18 14:13:14 · 3390 阅读 · 0 评论 -
http请求头中的application/x-www-form-urlencoded和application/json
最近在学习node遇到了一个问题写好的接口get和post的请求方式get不会发送预请求,post会发送预请求。什么是预请求呢?我点击了一次添加操作请求了一次接口发送一次请求但是谷歌network中却出现了两条请求这两条请求中200的是请求成功,204就我所说的预请求,由于跨域的问题存在会发送请求前会先发送一次预请求OPTIONS来确保请求的安全性。这个请求虽然不会造成程序上的错误但是...原创 2019-01-25 18:15:02 · 10607 阅读 · 3 评论 -
node相关的框架koa2
最近学习了node相关的框架koa2先来看看目录结构吧 之前有学过一点php相关的知识,node也可以分离出路由(routerIndex.js)、入口文件(index.js)、模型层(model)和控制层(contrallers)。node的语法是js并完美兼容es6语法(文件都是.js结尾),koa2最常用的有async,await。控制层控制层里面是每个接口的方法(export...原创 2019-02-23 17:27:01 · 171 阅读 · 2 评论 -
node.js加密token(jsonwebtoken)
每一个app都要有用户,而有用户就要有每个用户单独的token。jsonwebtoken是一个可以加密生成token和解密token的中间件。npm install jsonwebtoken --save安装我将这个过程封装到了一个中间件中并通过个koa2框架使用const jwt = require('jsonwebtoken')module.exports =...原创 2019-02-23 17:54:16 · 1832 阅读 · 0 评论 -
node请求外部接口的方法
在学习node的过程中一开始都是在处理外部的请求,但是如果碰到第三方接口的请求怎么办呢?这里有两种方法。一种是node原生request请求一种是引用koa2-request中间件的方法。node原生request请求这里我们分为get请求和post请求(原生node的request是需要手动引入的)get请求有以下两种,第一种直接将要的参数全部写到url里面;第二种将要传的参数写...原创 2019-02-23 18:22:57 · 8635 阅读 · 0 评论 -
node.js路由中间件koa-router
node.js后端的每一个路由就是一个接口。koa2框架结合koa-router中间件,使路由更加简介明了。这次讲讲koa-router的简单使用安装koa-routernpm install koa-router --save//在每个路由文件中引入const Router = require('koa-router')const router = new Router()...原创 2019-02-28 16:44:56 · 418 阅读 · 0 评论 -
node常用的中间件
在node的学习过程中积累了许多好用的中间件。这些中间件大部分要个koa配合使用1、koa-bodyparser这个插件使用来解析前端post请求带来的参数的//入口文件const bodyParser = require('koa-bodyparser');app.use(bodyParser({//设置可以接收的数据类型 enableTypes:['json', 'f...原创 2019-02-28 17:15:32 · 2951 阅读 · 1 评论 -
koa2完美支持async await
async await应该算是es7的东西了吧,在express和koa1中处理异步的方法都是yeild和generator等方式来处理异步看起来代码显得臃肿还有各种缺点(反正不用也没去深入了解)。koa2最新的node框架推出后直接完美支持async await,使得node能更加优雅的处理异步请求,在koa2的框架中会大量的用到这个方法。异步中的同步await必须依赖于async,...原创 2019-02-28 18:11:42 · 1298 阅读 · 2 评论 -
node操作redis轻量级数据库
虽然身为前端但是目标为全栈的我,在做项目的时候后端经常会返回一个token给我作为每个接口的秘钥。一开始觉得token没有什么,但是闲下来的时候就会去思考这个东西。因为对服务端还有客户端的session的认识并不是很深(本人起步晚没办法有些东西没来的急学)因此不去考虑这个东西。想法一:请求登录接口会生成一个token并存起来,token是会变的不可能每生成的一个token都适用于这个用户这不...原创 2019-03-28 10:43:06 · 552 阅读 · 1 评论