Nuxt3实现接口 Nuxt3 是使用node做ssr页面渲染的, 自带了H3 可以对接口进行处理。 Nuxt3 自动扫描 ~/server/api,~/server/routes,~/server/middleware目录中的文件,进行注册对应的接口 目录结构 即目录结构为↓,访问/api/login 就是接口的返回内容 这里需要注意,如果我们即使用代理,又要使用nuxt3来写接口的话,在代理时不可以使用api作为代理名称,否则访问就会被代理到对应地址。 id return { msg: `请求的是 ${id}的详情信息` } }) node出了可以直接链接数据库做后台接口,还可以使用node作为中间层,在服务端请求别的接口,处理数据后返回给页面 id=${id}`) return res }) 服务端获取参数方法(全部是nuxt封装好了的) 在 defineEventHandler 的方法中使用 此中event 是defineEventHandler
前言 本篇文章我们来使用 Supabase 实现 RESTful 风格的 API 接口,以此来实现网站分类和子站点的 CURD 功能。 category_id uuid 所属分类 id url text 站点 url logo text 站点 logo tags text 站点标签 sort int2 排序 这里需要注意的是,因为 Supabase 使用的是 Post 新增 /api/websites Put 更新 /api/websites Delete 删除 前端实现 阅读 Nuxt3 中文文档,我们可以在 server/api 目录下新增接口。 // 请求成功 return { code: RESPONSE_STATUS_CODE.SUCCESS, msg: '请求成功', data: data } }) 3、 ,自己可以根据实际情况修改,具体的数据库操作文档可参考: Supabase API DOCS 效果预览 总结 本篇文章我们学到了以下知识: Nuxt3 如何创建接口并调用 Supabase 数据库的基本操作和表的创建
plugins 使用目录结构|- plugins |-- definePlugin.tsdefinePlugin.ts// 导出的是defineNuxtPlugin,参数为一个回调函数export functionName的方式调用方法 functionName (something) => { return something * 1000 } } }})使用定义的公共方法 <script setup>const { $functionName } = useNuxtApp() // 引入后即可在页面中使用</script>element plus 引入 element plus官网安装npm install element-plus --save使用|- plugins |-- elementPlusPlugin.tselementPlusPlugin.ts 按照官网方式引用 dist/index.css'export default defineNuxtPlugin(nuxtApp => { nuxtApp.vueApp.use(ElementPlus)})这时在项目中直接使用
基本概念 layouts是Nuxt3提供的一种方便开发者快速实现自定义布局的约定 使用该约定需要在根目录下创建layouts文件夹,并在里面创建.vue文件用来作为布局模板。 如果需要创建多个模板,在layouts中创建多个.vue文件即可 在layouts中创建的.vue文件可以看做是一个容器,我们需要使用<slot name="header-box"/>插槽来存放页面相应位置的填充内容 />标签是可以个通用的布局标签,可以看做我们创建的布局容器,可以<NuxtLayout name="xxx"/>通过指定name属性布局模板文件名的方式指定布局模板 在<NuxtLayout/>标签中使用 关于
详细的原理可以参考以下文档: RSA算法原理(一) RSA算法原理(二) node-rsa 在 node.js 中使用 rsa 算法,我们使用的是 node-rsa 这个包。 const NodeRSA = require('node-rsa'); const a_public_key_data = '-----BEGIN PUBLIC KEY----- ... = a_public_key.verify(text, decrypted, 'utf8', 'base64'); console.log('A 公钥验签:', verify); serialize 接口传递的一般是复杂的对象 ) + '=' + encodeURIComponent(obj[key])); } }); return str.join('&'); }; 注意 RSA 算法有一定的计算量,加上 Node 当接口被频繁调用可能会占用主线程,阻塞其他接口,使用了 RSA 的接口并发量会下降十倍左右。如非必要,谨慎在 Node 里使用 RSA。
本章主要介绍如何使用postman做接口测试。 History: 请求历史记录,可以查询到之前的请求记录 Collections: 接口集,相当于一个接口项目或测试计划,接口集中可以建立无限极子文件夹,用于对接口进行分组管理 3、环境管理区 什么是环境 如下 3、使用postman批量发送请求 Runner:批量执行测试集 支持设置迭代次数 支持加载csv或json、txt类格式测试数据 使用实例: ①新建一个Collection,比如课堂练习,新建请求 (add requests)如登录,选择POST方法,填入URL,请求数据,URL的host使用配置的环境变量,请求数据使用变量做参数化,本地新建参数化文件备用 ②设置断言 ③Runner配置 1、 进入测试集批量执行设置页面 2、选择测试集下,要批量执行的请求,然后选择本地参数化的txt文件login.txt,数据文件类型选择text/csv,迭代次数iteration参数化数据多少个就填多少 3、
tsconfig.json 中的报错信息 报错分析 项目根目录的 tsconfig.json 文件完全引用 .nuxt 文件夹中的配置 "extends": "./.nuxt/tsconfig.json node_modules/@types 任何封闭文件夹中的包都被认为是可见的。 如果types指定,则只有列出的包将包含在全局范围内。 问题定位 此处指定了types只为node,于是进入 node_modules/@types 寻找 node 包,发现并没有。 问题清晰,缺少 @types/node 包。 pnpm i @types/node -D 安装后重启ide即可。
前言 Supabase 使用的是 postgresql 的 Row Level Security (RLS),可以限制不同用户对同一张表的不同数据行的访问权限。 图片 Nuxt3 登录鉴权 Nuxt3 中集成了 @nuxtjs/supabase,我们只需要准备两个文件即可:login.vue、confirm.vue。 min-h-full flex flex-col justify-center py-12 sm:px-6 lg:px-8"> <h2 class="my-6 text-center text-<em>3</em>xl </p> </div> </template> 最终效果 总结 通过本篇文章你可以学到如何在 Supabase 中<em>使用</em> Github 授权登录,通过身份认证后我们就可以在 Supabase 下篇文章我们将学习如何在 <em>Nuxt</em><em>3</em> 中创建 RESTful 风格 API,并结合 Supabase 数据库完成网站分类的 CURD 操作。
koa(扩展知识, 建议学习) koa是express超集(进阶版) 前后端分离和耦合概念介绍 面向过程 -》 面向对象 --》 面向服务 数据库 Node.js mongodb(bson json的超集 我们的数据库中没有 你要切换的数据库, 那么即为创建 切换: 数据库已经存在, 我们从一个数据库切换到另一个数据库 show dbs 将我们本地的所有数据库列出来 db/db.getName() 查看当前使用的数据库 : true, max: 100}); db.collName.isCapped(); //判断集合是否为定容量 (2)得到指定名称的集合 db.getCollection("account"); (3) :0,title:1,year:1}).count() //16 删除 db.coll_name.remove({}) 修改 db.coll_name.update(arg1,arg2,arg3, arg4) 参数解释: arg1: 匹配条件 arg2: 修改的具体内容 arg3: false / true 匹配几条 false 一条 true 多条 arg4: false
通常我们自己做的工具,都要用一套自己的账号管理系统,如果工具做得多,这些个账号管理系统又相互独立,维护和管理不是很方便。接入公司的人事系统才是一个好的选择。 LDAP是开放的Internet标准,支持跨平台的Internet协议,在业界中得到广泛认可的,并且市场上或者开源社区上的大多产品都加入了对LDAP的支持,因此对于这类系统,不需单独定制,只需要通过LDAP做简单的配置就可以与服务器做认证交互 python我们可以用ldap3这个库。当然ldap服务器的信息,要找运维去了解。 pip install ldap3 用python接入的代码如下 from ldap3 import Server, Connection,SUBTREE ldap_host = 'xx.xx.x.x pip install django-python3-ldap 按照官网的配置即可。 如果在jenkins中也需要接入人事管理系统,只需要配置一下即可。
引言 我们平时使用最多的接口调试工具就是postman了,比如开发将一个接口给到你,你想看看接口是否正常。最常用的方法就是用postman去调一下。 是不是挺好用,这样我们就可以用它来参数化了,重复调用接口也不会导致报文中数据重复使用同一份数据。 要怎么做? 这个时候需要自定义随机数。 自定义随机时间 通常情况下,很多接口使用的是时间戳,其实我们也可以用这个来做随机数参数化,如图: //十三位毫秒时间戳 let a = Date.now(); console.log(a); //十三位毫秒时间戳 postman做接口测试时,经常使用的随机数作为参数化的例子。
前言 原始测试金子塔包含 3 层,分别是:UI 自动化测试、接口服务测试、单元测试 ? 、Postman、Jmeter、RobotFramework 等 本篇文章将和大家一起聊聊 HttpRunner 做接口自动化的流程 2.介绍及安装 HttpRunner 是一款完全由 Python 执行方式采用 CLI 调用形式,可以和 Jenkins 等持续集成工具完美结合 使用 pip 安装 HttpRunner 稳定版本 # 安装 HttpRunner 稳定版本 pip3 install httprunner -V 命令可以查看 HttpRunner 的版本信息 4.小试牛刀 先通过一个简单的接口聊聊 HttpRunner 的使用步骤 目标接口 - GET: https://postman-echo.com 第二步:转为测试用例 使用 har2case 命令将 HAR 文件转换为测试用例,V3 版本默认生成测试用例格式为 Py 文件 ?
摘要 本文讲解使用postman做接口测试和批量接口测试的方法。Postman的入门参考《【知识】1.Postman接口测试神器从安装到精通》 2.实践内容 2.1 环境变量和全局变量的设置: a. 2.2 用Postman做接口测试的实例 接口测试中常用的请求为GET 和POST,以下均以这两种请求为例。 programs的长度) var data = JSON.parse(responseBody); tests["program's lenght"] = data.programs.length === 5; 3. 设置环境变量,建立多个接口间的关联 以gold_add 接口为例,由于该接口有权限验证,需要admin用户才可以做操作,需要添加cookie,所以需要将login 接口关联起来使用。 ---- 本文转载自《 postman 做接口测试之学习笔记》
Nuxt3&Tailwindcss 恩…… 翻看腾讯云开发者社区,似乎做运维和后端的人比较多,鲜有人接受前端的;难道前端真的已死么。 哈哈,不开玩笑~ 为了照顾更多小白用户,这里简单介绍什么是Nuxt3~ 简单地说,Nuxt3就是一套SSR的Vue3框架,与之对等的,就是React的Next3。 当然,把Nuxt3直接和Next3画约等于,基本可以,即: Nuxt3 ≈ Next3。 有利也有弊,Nuxt3把Vue3的生命周期钩子函数进行扩充。 一些组件,在Vue3上可以使用,在Nuxt3上的Server端,可能就会出现问题。 同时配合前文说的客户端插件,实现本地的系统深色模式切换监听和更改的接口方法。 图片 接下来就看看怎么使用吧。 使用演示 现在,我们就来看看如何使用。
前言 现在的 Node 对于前端而言可以涵盖各个方面,包括命令行接口、插件、依赖库、脚手架以及 Web 服务等。 本文是一篇对于 Node 使用的浅谈文章,会简单讲解一些个人使用 Node 的经验,分享的内容主要可分为三个方面: 工具篇 插件篇 服务篇 工具篇会讲解使用 NPM 发布命令行接口的简单教程。 服务篇会讲解一些基于 Express 应用框架的技术选型方案,这类技术往往对于做一些前端工具平台非常有用(例如 Mock 平台、多语言平台等,往往可配合命令行接口进行设计)。 在服务端配置 Nuxt 的 Builder 会导致服务端热加载过慢,因此将服务端 Nuxt 的 Builder 过滤掉,使用 ts-node-dev 做服务端热启动。 在客户端使用 ts-node 启动服务,通过识别 DEV_TYPE 环境变量加载Nuxt的 Builder,实现 Web 前端的热加载功能。
特别是渲染所依赖的node.js服务,不论是express还是koa又或者是像nuxt的封装,都绕不开渲染时对于服务器cpu产生压力。 反之,使用缓存,用内存空间换取cpu的使用率这是划算的,且属于node.js的长项。 缓存的使用思路 nuxt缓存有三种,从小到大就是接口缓存、组件缓存、页面缓存,下面我们找具体的场景来聊一下。 3.页面缓存 页面缓存的场景就是一个页面长的一样的部分,大量被用户请求,那么就可以做页面缓存,例如上面的首页,在一段时间内,用户看到的内容是不会变的。 缓存的实践 笔者在里并没有使用常规的lru-cache这个包做缓存,而是把接口与页面的缓存都做在里redis里。先说怎么做,下面的思考部分我们再来聊笔者的理由。 ,对于很多页面、接口需要做缓存来说,这样做是很不错的。
图片本教程手把手教你搭建一套使用 Node.js + Express + Sequelize + MySQL 构建的后端服务,详细描述通过 Node.js 与数据库通讯。 搭建「文件上传」管理后台后端实战教程:使用 Node.js + MySQL 开发 RESTful API 接口(Node.js + Express + Sequelize + MySQL)使用 Node.js + MongoDB 开发 RESTful API 接口(Node.js + Express + MongoDB)如果你正在搭建后台管理工具,又不想处理前端问题,推荐使用卡拉云,卡拉云是新一代低代码开发工具 使用 Postman 调用 node.js 后端测试 API图片后端搭建起来后,我们可以使用 postman 来对它进行测试。 可直接分享给同事一起使用:https://my.kalacloud.com/apps/8z9z3yf9fy/published卡拉云可帮你快速搭建企业内部工具,下图为使用卡拉云搭建的内部广告投放监测系统
git:配置 Git 相关的任务,如自动提交代码、打标签等 github:配置 GitHub 相关的任务,如创建发行版 npm:配置 npm 相关的任务,如发布到 npm 仓库 plugins:配置使用的插件 本文并没有发布到 npm ,需要的朋友可自己配置 3. patch 4、在我们开发完代码后,执行 pnpm release 命令,控制太会自动帮我们打包版本号并生成 CHANGELOG: 效果预览 git 打的标签 Tag CHANGELOG Todo 安装 Nuxt
引言 在上一篇:使用Postman工具做接口测试(二)——环境变量与请求参数格式文中讲了http请求一些基本配置与使用,实现了接口的调用,接口测试并没结束。 还有实际项目中,单一接口很少,通常是有关联的业务接口测试,比如下单操作,会调用商品信息接口,而我们在请求下单接口的时候,前提是获取商品信息接口是正常的,否则无法下单。 下面我会以登录为例,来讲如何利用postman提取上一个接口返回数据,并且放到当前接口来使用。 接口关联(参数提取) 下面以登录接口为例,讲一下postman如何使用参数提取,可以通过Fiddler工具对系统登录操作进行抓包分析,本文是以公司登录接口为例,出于保密考虑,有些地方不够敞开,敬请谅解 ,获取参数,如图: 因为我打印输出了两次,左图中所以显示两次,右图需要设置get_execution变量为环境变量,因为第二个接口需要使用,当前和初始值不需要填,运行脚本,获取到的值,自动填进去。
挺早之前就想写个 api 接口服务,封装下自己收集的一些 api 接口,以便调用,正好最近在接触 SSR 框架,所以就使用 Nuxt3 来编写该项目。 ,文档说明的比较详细了,这里就不费口舌了 服务引擎 Nuxt3 中的的 api 接口服务引擎使用的是⚗️ Nitro 的 JavaScript 服务,使用的是h3的 http 框架(相当于 hook 一般要做限流操作都需要涉及到中间件,在 Nuxt 中有路由中间件,和服务中间件 ,这里由于是要处理后端接口的,所以就需要使用服务中间。 所以该功能暂时未实现,后续也有可能通过 Test 来测试接口可靠性,而不是全局捕获异常接口。 不过 Nuxt3 对客户端的错误处理做得比较好,有个演示示例。 output/server/index.mjs 即可运行项目,或者也可以使用 pm2,总之和常见的 node 部署没什么差异。