egg.js跨域 & 静态文件夹 & Cookie的使用

egg.js官方文档

https://eggjs.org/zh-cn/intro/quickstart.html

https://koa.bootcss.com/

解决egg框架跨域

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')]
}

Cookie的使用

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
});

你可能感兴趣的:(Nodejs,node.js)