① url菜单优化
点击菜单显示相应页面:
、、、、、、之前是这样写的、、、、、、、、
之前在Menu表中定义了url_name 字段,在前端实点击路径跳转
前端点击跳转到url中对应的页面
egg:现在点击客户表,跳转display_table_objs张氏客户表
但是urls需要传两个参数,我们无能为力,所以打算定义成绝对路径
所以我们优化了,在Menu表中增加个url_type_choices字段
前端进行choices选择值的判断
② graphpad prism如何做jegg通路圆点图
具体操作如下:
1、双击软件桌面快捷方式,进入下面页面,根据需要在选择的那一行输入数字,点击creat。
2、进入之后,在title一行输入jegg通路圆点图的标题。
3、点击一键生成即可。
③ staruml工具栏变成页面了
重新创建并命名。
准备材料:软件:StarUML,电脑。具体步骤:1.打开StarUML软件,界面如下。选择EmptyProject,单击OK。2.右键单击界面中的Untitled,选择AddModel。3.命名为egg14.右键单击egg1,选择AddDiagramUseCaseDiagram,创建了一个用例图,命名为用例图1。5.点击左边工具栏中的工具,直接在右边空白处单击即可画出相应图形,并且可以为图形命名。
StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快,灵活,可扩展性强。
④ eggor验证码是什么
首先在router.js中注册路由
router.get('/util', controller.util.captcha); //前台显示图片验证码
router.post('/util', controller.util.verify); //后台比对验证码
登录后复制
然后写对应的controller文件
'use strict';
const Controller = require('egg').Controller;
class UtilController extends Controller {
async captcha() {
const ctx = this.ctx;
let captcha = await ctx.service.captcha.captcha();
ctx.response.type = 'image/svg+xml'; // 知道你个返回的类型
ctx.body = captcha.data; // 返回一张图片
ctx.session.login_code = captcha.text.toLowerCase();
ctx.session.maxAge = 1000 * 60 * 10;
}
async verify() {
const { type, code } = ctx.query // 获取客户端发送的类型和验证码
const { login_code, register_code } = ctx.session // 获取session保存的验证码
let result_success = { status: 0, message: 'success' } // 定义返回结果
let result_error = { status: 1, message: '验证码错误' }
// 登陆验证码验证
if (type === '1') { //进行验证并返回结果
ctx.body = code === login_code ? result_success : result_error
} else {
// 注册验证码验证
ctx.body = code === register_code ? result_success : result_error
}
}
}
mole.exports = UtilController;
编写Service文件
const Service = require('egg').Service;
const svgCaptcha = require('svg-captcha');
class ToolsService extends Service {
// 产生验证码
async captcha() {
const captcha = svgCaptcha.create({
size: 4,
fontSize: 40,
width: 100,
ignoreChars: 'OoLi',
height: 40,
noise: 4,
background: '#cc9966'
});
this.ctx.session.code = captcha.text;
return captcha;
}
}
mole.exports = ToolsService;
登录后复制
配置相应的插件
可以使用以下的npm install svg-captcha --save ; npm install egg-session --save就可以安装插件
mole.exports.captcha = {
enable: true,
package: 'svg-captcha',
};//添加svg插件并开启插件
mole.exports.session = {
enable: true,
package: 'egg-session',
};//使用session
登录后复制
前端点击图片实时刷新图片验证码
下面的js中在路由后面生成随机的字符串是为了清除浏览器缓存,可以刷新出新的验证码图片,"?"的作用就是加上一个参数,也就是随机字符串
<div>
<img src="/captcha" alt="验证码图片" onclick="this.src = this.src + '?' +Math.random()">
</div>
登录后复制
最后要强调的就是在前端使用img标签接收验证码,就是上面的html文件。
将验证码存入session中,在后台判断(session安全)
⑤ nodeJS(前后端分离、优势、不足
文章阅读,来自 前端之巅 去哪儿网 部分摘录
1.项目分离,页面分离
第一种是项目分离,承载页面分离。他的特点是简单,快速,前端只关注浏览器方面,除浏览器端之外都是后端负责。
缺点 :
沟通成本高,前期,前端需要使用 ng 或者代理工具调试,后期,还要把页面给到后端,并且新建一个对应的路由。
2.项目分离,只是后端的页面,放到了前端项目里
后端只需要配置路由,最终上线时,由发布系统负责把前端中的页面,自动同步到后端相应的目录中。其中相应的目录需要前后端提前约定,不然后端在渲染页面的时候,就会找不到相应的文件。相比第一种方案,稍微有点进步。沟通成本会有一定的降低。
缺点 :
不过如果需要在页面里做一些业务逻辑处理,还需要前端同学掌握和学习 velocity 语法,对于新同学而言看似掌握的了一门新语法,但实际操作起来并非想象中的流畅。
3.第三种方案是使用 Nodejs 作为页面渲染层,后端只负责数据的生产工作
这也是目前阶段主要的使用方式。它的优点是前端同学对于整个页面的生命周期有完全的控制权,包括开发,调试,部署,上线以及后期的性能监控,应用监控等等。可做的事情也更多,比如使用 React SSR 做同构渲染。
缺点 :
对于前端同学的要求也会很高,除学习前端知识外,还要学习后端知识。
整个应用都是由前端统一负责,所以还需要接收报警电话或者短信,7*24 小时,都在待命状态。
1.一些前端开发,只关注浏览器端,服务器端开发关注很少,或者根本就不关注 ;
2.认为 Node.js 只适合开发一些工具类的功能,相对于后端开发来看它只是个玩具 ;
3.Node.js 的生态不如其他后端语言生态健全 ;
4.涉及到后端开发的知识面比较广,在没有这些基础知识或者经验积累的基础上,考虑问题比较片面,最终做出的系统问题比较多,容易被后端鄙视 ;
看似问题很多,但实质上只有两个原因,
1,自身知识储备不够。
2,对 Node.js 了解不深,不敢应用在生成环境中,即使应用到生产环境,一旦出现问题,不能快速及时的处理,导致高层认为还不如其他后端语言稳定,降低了我们的话语权。 (很中肯,不摸底,不敢用于项目)
1,提高开发效率,因为有了 Node 之后就不需要配置 Nginx 了,也不需要配置一些代理工具了,所有的页面生命周期都是由前端统一去管理的,这时候不需要其他人进行合作。
2,降低沟通成本,除了接口格式外,不需要和后端进行交互了;
3,前后端职责也更为清晰,因为这时候,界限更为清晰了,后端只负责生产数据,它只提供数据就可以了,至于数据怎么消费,以及怎么用,都由前端去做;
4,可以同时使用 React SSR 技术,做到首屏渲染,提高用户体验,除了首屏之外,还可以做异步的加载、SEO 等操作。
5,Node.js 可提供一些服务,不仅能让我们使用,还可以对外使用,如 RESTful API,这样就不用有求于后端了。
/---------------------------------------------文章摘录结束-------------------------------------------------/
除了号称nodejs界jQuery的express,
另外两个比较不错的
一个是 360 团队的 Thinkjs ,
一个是阿里的 Eggjs
⑥ 使用egg.js框架本地开发时怎么禁止缓存
单独屏蔽一个我还真不知道,但是将游览器的JS屏蔽到时可以做到 工具 -internet选项 - 高级 -然后找js的选项把勾点掉~
⑦ AE总是弹出这个提示,该如何解决
打开AE CC2015 总弹出这个窗口:您的磁盘缓存文件夹所在驱动器上没有足够的空间需要删除缓冲,删除方法为:
1、我们在电脑上打开AE软件,点击界面顶部的【编辑】。
搜狗问问
2、在弹出的下拉菜单中依次选择【首选项】、【媒体和磁盘缓存】。
搜狗问问
3、这时,我们可以看到AE缓存文件的保存位置,点击下方的【清空磁盘缓存】。
搜狗问问
4、系统将弹出一个提醒窗口,当前缓存已经占用了6GB的空间,点击【确定】进行缓存的清空。
⑧ egg.js在中间件中怎么使用mysql连接
:建议使用中间件连接,操作数据库的代码更加简单。我们的后台接口就是用的中间件连接。nodejs的设计特点,使得他本身就很快,即使是读写数据库这样耗时的操作。用连接池的目的其实就是想就加快数据库的IO速度。因此如果用nodejs,使用普通连接足矣
⑨ Android Easter Egg 谁能指点一下这个怎么回事
是安卓系统彩蛋。以下按步骤介绍如何使用:
1、进入设置—关于手机中,然后找到Android版本
⑩ PYTHON_EGG_CACHE是什么
用easy_install安装之后,安装文件的缓存