Vue+Vuex+Electron+ElementUI 开发

Egg 的基本知识点

2019-08-09  本文已影响3人  望穿秋水小作坊

1、Egg.js 是什么?

  1. Egg.js 是《阿里旗下产品》基于 Node.js 和 Koa 是一个 Nodejs 的企业级应用开发框架。可以帮助开发团队和开发人员降低开发和维护成本。
  2. Express 和 Koa 是 Nodejs 社区广泛使用的框架,简单且扩展性强,非常适合做个人项目。但是框架本身缺少约定,标准的 MVC 模型会有各种千奇百怪的写法。Egg 按照约定进行开发,奉行【约定优于配置】,团队协作成本低。

2、Egg.js 的特性:

  1. 提供基于 Egg 定制上层框架的能力
  2. 高度可扩展的插件机制
  3. 内置多进程管理
  4. 基于 Koa 开发,性能优异
  5. 框架稳定, 测试覆盖率高
  6. 渐进式开发

3、Egg 是一个 mvc 的框架

4、Egg 获取 get 传值

// 访问地址:
http://127.0.0.1:7001/newscontent?aid=22244

// router 配置
router.get('/newscontent', controller.news.content);

//controller 代码
async content(){
    const {ctx} = this;
    // egg.js 里面获取 get 传值
    let query = ctx.query;
    console.log(query)
    ctx.body = '新闻详情';
}

5、Egg 获取动态路由参数

// 访问地址:
http://127.0.0.1:7001/newslist/life

// router 配置
router.get('/newslist/:id', controller.news.list);

//controller 代码
async list(){
    const {ctx} = this;
    // egg.js 里面获取动态路由参数
    let params = ctx.params;
    console.log(params)
    ctx.body = '新闻列表';
}

6、Egg 使用 ejs 模板渲染页面

async ejs(){
    const {ctx} = this;
    //  要注意 render 方法是异步方法,要用 await。ejs 的配置从 github 里面有说明(egg-ejs)
    let msg = '我是传值标题';
    let list = [1,2,3,4,5];
    await ctx.render('news',{msg,list})
}

7、Egg 使用静态资源css 或者 image

// 首先在 app/public 目录下创建 css 目录和 images 目录
// css
<link rel="stylesheet" href="/public/css/basic.css">
// images
<img src="/public/images/1.jpg" alt="" srcset="">

8、Egg 中 service定义以及使用

// controller 中调用 service 主要注意异步调用。
let msg = await this.service.news.getNewsTitle();

// service 定义
const Service = require('egg').Service;

class NewsService extends Service {
    async getNewsTitle() {
        return 'service 标题:福建新闻'
    }
}

module.exports = NewsService;

9、Cookie 简介

cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个域名的时候共享数据。

HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站。每次访问都是没有任何关系的。

10、Cookie 作用

11、Cookie 的常用属性

maxAge:1000*3600*24  // cookie 存储一天, 关闭浏览重新打开不消失,除非过期了。
httpOnly:true // 只允许在 js 里面访问,不允许客户端页面直接访问。
signed:true // 对 cookie 进行签名 防止用户修改 cookie
encrypt:true // 是否对 cookie 进行加密 (需要解密,并且可以用中文 cookie)

12、session 简介

session 是另一种记录客户状态的机制,不同的是 cookie 保存在客户端浏览器中,而 session 保存在服务器上。

13、session 的工作流程

当浏览器访问服务器并发送第一次请求时,服务端会创建一个 session 对象,生成一个类似于 Key,Value 的键值对,然后将 key(cookie)返回到浏览器(客户)端,浏览器下次再访问时,携带 key(cookie),找到对应的 session(value).

11、Session 的常用属性

maxAge:1000*3600*24  // cookie 存储一天, 关闭浏览重新打开不消失,除非过期了。
httpOnly:true // 只允许在 js 里面访问,不允许客户端页面直接访问。
signed:true // 对 cookie 进行签名 防止用户修改 cookie
encrypt:true // 是否对 cookie 进行加密 (需要解密,并且可以用中文 cookie)
renew:true // 每次刷新页面的时候 session 都会被延期。
上一篇 下一篇

猜你喜欢

热点阅读