egg.js官方文档
https://eggjs.org/zh-cn/intro/quickstart.html
https://koa.bootcss.com/
web端访问服务器,存在跨域请求问题,egg作为服务端,需要开放请求域,方法如下:
1、安装egg-cors
npm i egg-cors -S
2、在config/plugin.js声明
module.exports = {
//static: {
// enable: true,
//},
//添加以下代码
cors: {
enable: true,
package: 'egg-cors',
}
};
3、在config/config.default.js配置
//跨域配置
config.security = {
csrf: {
enable: false,
ignoreJSON: true
},
domainWhiteList: ['http://www.baidu.com', 'http://localhost:8080'], //配置白名单
};
config.cors = {
// origin: '*', //允许所有跨域访问,注释掉则允许上面 白名单 访问
allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',
credentials: true, //客户端请求如果需要保存本地凭条(cookie),则会带有特别的请求字段 withCredentials,服务端需要同样开启这个字段才能响应这些请求
};
(一般不用配置)
1.安装staic
npm i egg-static --save //安装static
2.在config/plugin.js声明
module.exports = {
static: {
enable: true,
},
};
3.在config/config.default.js配置
const path = require('path');
config.static = {
prefix:'/public/',
dir: [path.join(appInfo.baseDir, 'app/public'), path.join(appInfo.baseDir, 'app/azz')]
}
https://eggjs.org/zh-cn/core/cookie-and-session.html#cookie-%E7%A7%98%E9%92%A5
1、cookie介绍
● cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个域名的时候共享数据。
● HTTP是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的。
2、egg.js中Cookie的设置和获取
● Cookie设置语法:
ctx.cookies.set(key, value, options);
this.ctx.cookies.set(‘name’, ‘LLT’);
● Cookie获取语法:
ctx.cookies.get(key, options)
this.ctx.cookies.get(‘name’)
● Cookie清除:
this.ctx.cookies.set(‘name’, null);
3、设置加密Cookie 、获取加密Cookie
//设置加密Cookie
ctx.cookies.set('token', 'ThisIsAtoken', {
maxAge: 1000 * 3600 * 24, //cookie存储一天 设置过期时间后关闭浏览器重新打开cookie还存在
httpOnly: true,
signed: true, //对cookie进行签名,防止用户修改cookie
encrypt: true //是否对cookie进行加密,如果加密那么获取的时候要对cookie进行解密
})
//获取加密Cookie
ctx.cookies.get('token', {
encrypt: true
});