
NodeJS
文章平均质量分 82
全栈项目,后端使用 NodeJS + KOA2开发接口
_龙衣
想到就去做,万一实现了。
展开
-
NodeJS 后端开发 - 使用 sequelize/cli 实现 mysql 数据迁移
文章目录背景实现安装 sequelize/cli 依赖初始化实现数据迁移参考背景在做后台接口开发时,我们总会遇到新增字段或者修改字段的问题。在开发阶段我们可以删表重建,但是上线之后可不能这么搞了。所以数据迁移就很重要了。所谓的数据迁移原理其实就是将数据复制出来然后再把表删了重新建表同时把数据再复制进去。这里我用到的ORM是Sequelize所以下面简单介绍一下Sequelize实现数据迁移的过程。实现安装 sequelize/cli 依赖npm install --save-dev sequ原创 2021-01-24 19:56:06 · 924 阅读 · 0 评论 -
全栈项目|小书架|微信小程序-登录回调及获取点赞列表功能
效果图这一节介绍,登录回调 以及 喜欢列表 的实现。登录回调:这里是指在获取登录完成之后,再进行下一步的操作。比如效果图中我的页面,默认是未登录状态,积分和喜欢列表的数量都没有获取到。而登录成功之后不仅将用户信息刷新,同时将积分和喜欢列表的数量刷新。登录回调我这里实现的回调层级有点多,这也是回调的一个弊端,当回调层级很多代码就会很难理解。一个简单的回调例子:// 1、获取...原创 2019-12-10 23:36:41 · 527 阅读 · 0 评论 -
全栈项目|小书架|微信小程序-实现搜索功能
效果图上图是小程序端实现的搜索功能效果图。从图中可以看出热搜搜索分页原创 2019-12-09 23:02:10 · 873 阅读 · 0 评论 -
全栈项目|小书架|服务器端-NodeJS+Koa2 实现搜索功能
搜索功能会包含:热搜、搜索列表。热搜功能在电商的搜索中经常看到,热搜数据的来源有两种用户真实的搜索数据,根据算法进行排序人为推送的数据想想微博热搜是可以买的就知道热搜功能多么重要了。我采用第二种方式简单实现。第一种方式由于我目前还未实现,没办法介绍。大伙儿可以参考下面几篇文章介绍热搜实现:Redis简单案例(一) 网站搜索的热搜词Redis 与搜索热词推荐热搜算法是怎...原创 2019-12-08 21:34:52 · 612 阅读 · 0 评论 -
全栈项目|小书架|服务器端-NodeJS+Koa2 实现点赞功能
效果图接口分析通过上面的效果图可以看出,点赞入口主要是在书籍的详情页面。而书籍详情页面,有以下几个功能是和点赞有关的:获取点赞状态点赞取消点赞所以项目中理论上与点赞相关的接口就以上三个。点赞 model 的设计既然明确了接口数量,那么下一步就是设计接口对应的model,通过model生成表格like,里面存放点赞数据。那么需要存在哪些点赞数据呢?这里简单分析后,记录...原创 2019-12-07 23:36:36 · 818 阅读 · 0 评论 -
全栈项目|小书架|服务器端-NodeJS+Koa2 实现评论功能
评论功能分析上图可以看出评论功能主要实现了:评论的发布、评论列表的展示。在不考虑子评论以及图片评论的场景下,评论功能主要有以下两个接口:发布评论获取评论列表(考虑分页)评论 Model 的建立结合上图通过分析可以看出一条评论信息主要包含有:用户 id用户名用户头像评论信息书籍 id书籍名称(可选)那么根据以上的分析,我们的Model设计如下:Comment.i...原创 2019-12-06 14:18:03 · 488 阅读 · 0 评论 -
全栈项目|小书架|小程序端-评论功能实现
效果图发布评论发布评论的入口在图书详情页面,点击 写评论 按钮之后跳转到发布评论页面。wxml布局比较简单了,目前还没有添加图片评论功能,也没有子评论功能,所以伪代码就比较简单了:<view class="comment-container"> <!-- book name --> <view class="book-name"> &l...原创 2019-12-04 22:59:14 · 520 阅读 · 0 评论 -
全栈项目|小书架|服务器端-NodeJS+Koa2 实现书籍详情接口
通过上篇文章 全栈项目|小书架|微信小程序-首页水平轮播实现 我们实现了前端(小程序)效果图的展示,这篇文章来介绍服务器端的实现。书籍详情分析书籍详情页面如下:从上图可以分析出详情页面大概有以下几个接口:获取书籍详情信息获取用户对书籍的喜欢状态接口喜欢/不喜欢书籍接口获取评论列表写评论接口以上的接口,有的数据可以直接从已存在的数据表中去获取,比如:书籍详情信息,而其他新...原创 2019-12-03 23:19:00 · 398 阅读 · 0 评论 -
全栈项目|小书架|微信小程序-书籍详情功能实现
效果图实现分析从效果图上分析,书籍详情是通过点击首页的item后进入。进入详情页之后页面顶部显示书籍的相关信息,同时判断用户是否登录,未登录则弹出一个授权登录窗口。点击登录之后即可加载出用户评论信息。通过上图我们可以分析出静态页面的主要结构如下:书籍信息左侧布局是图书图片中间布局从上到下是:名称、作者、出版社右侧布局是收藏icon登录提示弹窗上部分是提示文本...原创 2019-12-02 23:04:43 · 2838 阅读 · 2 评论 -
全栈项目|小书架|服务器端-NodeJS+Koa2实现首页图书列表接口
通过上篇文章 全栈项目|小书架|微信小程序-首页水平轮播实现 我们实现了前端(小程序)效果图的展示,这篇文章来介绍服务器端的实现。首页书籍信息先来回顾一下首页书籍都有哪些信息:从下面的图片可以看出目前一本图书信息主要有:图片字段名称字段作者字段出版社字段除了以上前端页面中可见的信息外,在服务器开发中还需要给每一条记录(数据)都加上下面的几个字段:创建时间字段更新时间...原创 2019-12-01 09:43:49 · 375 阅读 · 0 评论 -
全栈项目|小书架|微信小程序-首页水平轮播实现
首页效果首页功能主要有搜索(下篇文章介绍)图书列表图书列表分析一波:列表是水平滑动点击列表会有按压效果:布局整体缩小每个布局的信息从上到下排列分别是:图片、书名、作者、出版社每个布局之间都有间隔根据以上信息,在没有服务器接口的时候我们可以利用模拟数据将静态页面实现出来。首先是水平滑动列表,这个可以使用swiper组件实现,在使用swiper组件的时候可以通过设置pr...原创 2019-11-28 23:27:04 · 1020 阅读 · 0 评论 -
全栈项目|小书架|微信小程序-登录及token鉴权
小程序登录之前也写过微信小程序登录的相关文章:微信小程序~新版授权用户登录例子微信小程序-携带Token无感知登录的网络请求方案微信小程序开通云开发并利用云函数获取Openid也可以通过官方的这张时序图了解小程序的登录流程:说明:调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。调用 auth.code2Session 接口,换取 用户唯一标识 ...原创 2019-11-27 23:50:30 · 1182 阅读 · 3 评论 -
全栈项目|小书架|微信小程序-项目结构设计分包
第一篇博文先写分包第二篇博文再写登录,token获取,token验证token无感知登录原创 2019-11-27 22:26:57 · 801 阅读 · 0 评论 -
全栈项目|小书架|服务器开发-用户模块设计(用户表设计,注册登录,退出登录)
用户 Model 设计一个系统中,用户数据是最基础也是最重要的。参考:可扩展的用户表设计设计一个可扩展的用户登录系统 (1)目前用户的账号密码,小程序登录二者数据如何同步?注册登录注册登录配合JWT实现第三方注册账号密码注册用户信息保护,密码加盐。登录状态保持https://learnku.com/articles/17883?order_by=vote_...原创 2019-11-24 20:12:55 · 723 阅读 · 0 评论 -
全栈项目|小书架|服务器开发-NodeJS 使用 JWT 实现登录认证
安装生成 Token验证 Token携带参数获取参数原创 2019-11-19 22:53:47 · 326 阅读 · 0 评论 -
全栈项目|小书架|服务器开发-JWT 详解
JWT官方简介:Introduction to JSON Web Tokens文章基本是官网内容的翻译,英文不错的同学可点击上面的链接直接看英文文档。什么是 JWTJWT全称是JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间作为JSON对象安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用...翻译 2019-11-17 22:40:04 · 427 阅读 · 0 评论 -
全栈项目|小书架|服务器开发-Koa2中间件机制洋葱模型了解一下
KOA2是什么?Koa是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async函数,Koa帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。为什么产生?笔者对这几个框架都不熟,这...原创 2019-11-17 11:46:25 · 379 阅读 · 0 评论 -
全栈项目|小书架|服务器开发-NodeJS 中使用 Sequelize 操作 MySQL数据库
安装官网:https://sequelize.org/v5/manual/getting-started.html安装sequelize及数据库连接驱动npm install --save sequelize$ npm install --save mysql2使用创建连接:const Sequelize = require('sequelize');const sequel...原创 2019-11-16 11:19:45 · 325 阅读 · 0 评论 -
全栈项目|小书架|服务器开发-Koa2 连接MySQL数据库(Navicat+XAMPP)
数据库为什么使用数据库选择哪个数据库mongodb mysqlmysql2 使用安装Sequelize 使用增加数据删除数据改变数据查询数据事务咨询请加微信:轻撩即可。...原创 2019-11-14 22:55:05 · 405 阅读 · 0 评论 -
全栈项目|小书架|服务器开发-Koa2 参数校验处理
为什么需要做参数校验在开发中,无论是App开发还是服务器接口开发, 我们无法去预测用户传入的数据,因此参数(数据)校验是开发中不可或缺的一环。例如像App的注册登录表单提交页面,就要做好多层的判断。如:用户名是否为空,用户密码是否为空,密码长度是否足够等等。那么有没有比较优雅的方式实现呢?如何优雅实现这里使用的是基于validator.js封装的Lin-Validator,源码是七月老师...原创 2019-11-10 13:39:46 · 819 阅读 · 0 评论 -
全栈项目|小书架|服务器开发-Koa2 全局异常处理
什么是异常做开发的基本都知道异常,像Android开发中常见的ANR异常、空指针异常,服务器开发中经常遇到的异常404,500异常,还有一些其他常见的异常,具体可见HTTP状态码。基本上这些异常可以总结为:已知异常和未知异常。已知异常就是程序中能够预想到异常,比如:服务器接口开发中某个api接口需要5个参数,而用户传递的参数多余5个或者少于5个,这种错误就是已知错误。未知异常就说程序中不能...原创 2019-11-10 12:14:02 · 359 阅读 · 0 评论 -
全栈项目|小书架|服务器开发-Koa全局路由实现
什么是路由路由就是具体的访问路径,指向特定的功能模块。一个api接口是由ip(域名)+端口号+路径组成,例如 :https://www.npmjs.com/package/koa-router就是一个路由,指向了koa-router的npm页面。为什么需要 koa-router 路由当然不需要koa-router也能实现路由功能,通过ctx.request.path去指定路径实现。例子如...原创 2019-11-05 23:25:56 · 306 阅读 · 0 评论 -
全栈项目|小书架|服务器开发-NodeJS 项目分包
唠嗑参考的是慕课网七月老师的课程,七月的课质量真的挺高的,推荐一波。这次的小书架项目源码不会全部公开,因为用了七月老师课程的绝大部分代码。虽然代码不全,但是只要思路看得懂,代码实现就很简单了。小书架项目不是我个人完整的项目,UI 使用的是【9小时搞定微信小程序开发】,这位老师的界面效果,当时(去年吧)由于已经学了一段时间小程序,正好看到极客时间有这个课程,看着目录讲的挺详细的就买了,后来没...原创 2019-11-04 21:43:33 · 531 阅读 · 0 评论