nodejs/egg.js/koa2/koa
nodejs/egg.js/koa2/koa
公孙元二
如果你看到这句话,幸运值+1
展开
-
uniapp 微信小程序 web-view上传文件的真机调试方法。
需求: 需要上传用户手机文件管理器里的文件,而微信小程序没有提供相关接口,因此需要小程序加载一个H5页面,放置一个上传文件按钮,用户点击按钮打开用户的文件管理器从而上传手机里的文件。但是web-view只允许填写一个url,也就是H5的程序必须单独部署在一个地方。但在开发阶段,前端往往没有服务器资源,无法实时部署和调试H5程序。因此我的解决方案是,利用egg运行一个服务器环境,然后把H5项目打包后放在egg静态资源文件夹下,web-view填写改静态资源的地址,从而实现H5资源的访问。步骤如下:1.完成原创 2022-04-19 15:09:02 · 1600 阅读 · 0 评论 -
腾讯云/阿里云 宝塔linux面板 部署nodejs(egg)项目和vue项目
我的服务器类型(宝塔linux面板):点击服务器选择管理应用:根据提示进入面板首页:输入地址:输入密码和账号进行登陆:账号和密码获取方法:登陆后,上传你的代码文件,在这里我上传了打包后的vue的dist文件夹,及egg.js项目文件。记得两个文件都不携带node_modules:在软件商店我安装了这些插件,你们根据实际进行按照,提示缺啥就按照啥。因为我的egg.js需要使用端口7001,所以在“安全”这里放行了端口7001:因为我egg.js项目需要使用数据库,所以我原创 2022-04-11 22:59:49 · 826 阅读 · 0 评论 -
node egg.js 拼接sql语句实现模糊条件查询
应用场景:1.满足用户在页面初始化时(即“课程名称”和“星期”都为空)点击“查询”按钮,能够查询出全部的数据。2.满足用户只输入“课程名称“可以进行模糊查询3.满足用户只选择“星期”就可以进行模糊查询使用下面代码的前置要求:前端只把有值的key传给后端。比如查询条件{name:'', age:undefined, sex:'1'}那么只有{sex:'1'}会传到后端。代码: // 查询数据库 async getCourse(params) { try { const原创 2022-03-27 20:00:24 · 1114 阅读 · 0 评论 -
egg.js egg-mysql中sql学习的 - 个人笔记
Create可以直接使用 insert 方法插入一条记录。const result = await this.app.mysql.insert('posts', { title: 'Hello World' }); // 在 post 表中,插入 title 为 Hello World 的记录等同于=> INSERT INTO `posts`(`title`) VALUES('Hello World');Read可以直接使用 get 方法或 select 方法获取一条或多条记录。sel转载 2022-03-27 14:03:45 · 1190 阅读 · 0 评论 -
egg 访问静态html页面文件(搭建一个类似tomcat的服务器环境)
静态资源存放路径:静态资源文件内容:访问该静态文件:前端就可以自己搭建一个网页容器来存放html资源,类似于tomcat的效果。原创 2022-03-22 22:59:21 · 891 阅读 · 0 评论 -
egg.js查询出某个表的数据个数
service/home.js'use strict';const Service = require('egg').Service;class homeService extends Service { // 查询数据库 async getData() { try { const app = this.app; const classData = await app.mysql.select('class'); const studentDa原创 2022-03-15 23:38:10 · 735 阅读 · 0 评论 -
egg.js实现接口的增删改查
service/student.js'use strict';const Service = require('egg').Service;class studentService extends Service { // 添加数据库 async addStudent(params) { try { const { app } = this; const res = await app.mysql.insert('student', params);原创 2022-01-05 22:56:26 · 759 阅读 · 0 评论 -
egg.js过滤页面传过来的参数 过滤去除对象的空字符串属性
假设拿到的参数对象叫params for (const propName in params) { if (params[propName] === null || params[propName] === undefined || params[propName] === '') { delete params[propName]; } } const res = await app.mysql.select('exa原创 2022-01-05 22:53:11 · 629 阅读 · 0 评论 -
egg.js接收get请求参数和post请求参数
get请求let query = this.ctx.query;post请求let query = this.ctx.request.body;返回给前端的方式this.ctx.body = { code: 0, data: '返回的数据', msg: '错误数据'}原创 2021-12-24 13:59:38 · 1572 阅读 · 0 评论 -
mongodb://127.0.0.1:27017/egg-mongo disconnected(nodejs.MongoNetworkError: [egg-mongoose]failed... )
npm run dev 突然无法启动egg.js程序,一脸懵逼。查看控制台发现如下报错:2021-02-19 16:49:43,613 ERROR 6152 [egg-mongoose] mongodb://127.0.0.1:27017/egg-mongo disconnected2021-02-19 16:49:43,615 ERROR 6152 nodejs.MongoNetworkError: [egg-mongoose]failed to connect to server [127.0.0.原创 2021-02-19 17:18:18 · 1282 阅读 · 0 评论 -
egg.js获取前端请求的参数
1.如果是post,且参数放在body里面2.如果是get请求,且参数跟在url后面,以www.xxxx?params1=xxx的形式3.如果是get请求,且参数跟在url后面,以www.xxxx/params1/params2的形式原创 2020-12-30 16:06:01 · 2180 阅读 · 1 评论 -
egg.js POST参数接收不到
使用Egg写接口时,当请求为POST请求,使用ctx.request.body即可接收到参数。如果Body为form-data时,用ctx.request.body是接收不到参数的,那是因为Egg封装里面只接收x-www-form-urlencoded这种类型我们只要将Body的类型改为x-www-form-urlencoded即可用ctx.request.body接收参数x-www-form-urlencoded 多个字段值用 & 拼接,用于传文本。(「窗体数据被编码为名称/值对」)form转载 2020-12-30 15:21:26 · 2200 阅读 · 3 评论 -
invalid csrf token. See https://eggjs.org/zh-cn/core/security.html#安全威胁csrf的防范
原因:egg 框架内置了安全系统,默认开启防止 XSS 攻击 和 CSRF 攻击。在Security的默认拦截器里,默认会开启CSRF处理,判断请求是否携带了token,如果没有就拒绝访问。并且,在请求为(GET|HEAD|TRACE|OPTIONS)时,则不会开启解决方案:在config.default.js中添加如下红框配置:config.security = { csrf: { enable: false, }, };...原创 2020-12-30 11:43:25 · 1646 阅读 · 0 评论 -
egg.js实现一个简单接口
其实脚手架生成的初始项目目录 app/controller/home.js 已经是个简单的例子。我们只要模仿它就好了。1.在controller文件夹下新建一个js文件-> test.js'use strict';const Controller = require('egg').Controller;class TestController extends Controller { async index() { const { ctx } = this; const原创 2020-12-29 14:50:53 · 1367 阅读 · 0 评论 -
package.json中^和~的区别
webpack 项目的package.json 文件列出了项目所依赖的插件和库,同时也给出了对应的版本说明,但是在版本说明前面还有个符号:’^’(插入符号)和’~’(波浪符号),总结了下他们之间的区别:例如:‘~’(波浪符号):他会更新到当前minorversion(也就是中间的那位数字)中最新的版本。放到我们的例子中就是:“exif-js”:“~2.3.0”,这个库会去匹配更新到2.3.x的最新版本,如果出了一个新的版本为2.4.0,则不会自动升级。波浪符号是曾经npm安装时候的默认符号,现在转载 2020-12-15 11:03:51 · 668 阅读 · 0 评论 -
Nodejs koa2基于jsonp方式实现跨域请求
JSONP原理利用<script>标签没有跨域限制的漏洞,网页可以得到从其他来源动态产生的 JSON 数据。JSONP请求一定需要对方的服务器做支持才可以。限制JSONP只支持GET请求,JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。koa2代码:router.get('/getData.jsonp', async ctx => { /...原创 2019-12-20 10:31:12 · 725 阅读 · 0 评论 -
Node.js Koa2实现JWT Token用户认证
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案前置知识:1.基于Token的身份验证2.koa中文文档案例为了更简洁易懂,使用postman来代替前端界面请求接口。下面案例获取请求的name值来生成token代码:const Koa = require('koa')const Router = require('koa-router')const jw...原创 2019-12-17 16:40:22 · 1434 阅读 · 3 评论