FaasJS
首页
  • 教程
  • 文档
  • 更新日志
  • VS Code 插件
  • Docker 镜像

    • faasjs/nginx
    • faasjs/node
    • faasjs/vscode
  • Github
  • 支持 FaasJS
  • 赞助 FaasJS
  • English
  • 简体中文
首页
  • 教程
  • 文档
  • 更新日志
  • VS Code 插件
  • Docker 镜像

    • faasjs/nginx
    • faasjs/node
    • faasjs/vscode
  • Github
  • 支持 FaasJS
  • 赞助 FaasJS
  • English
  • 简体中文
  • 1 分钟上手
  • 5 分钟开发登录注册功能
    • faas.yaml
    • 使用插件
    • Http、Cookie 和 Session
    • 数据库操作
    • HTTP 请求规范
    • 环境变量
    • 在 React 中使用
  • 背景故事

Http、Cookie 和 Session

@faasjs/http 提供了以下功能:

  • 网络请求的入参校验
  • 规范化网络响应(基于 HTTP 请求规范)
  • Cookie 的校验和读写
  • Session 的校验和读写(Session 被加密储存在 Cookie 中)

校验示例

import { Func } from '@faasjs/func';
import { Http } from '@faasjs/http';

const http = new Http({
  validator: {
    params: {
      whitelist: 'error', // 入参白名单校验,若发现未配置的入参会报错,避免攻击
      rules: {
        status: {
          required: true, // 配置 id 为必填项
          type: 'number', // 配置 id 必须为数字类型
          in: [0, 1, 2], // status 的值必须为 0, 1, 2 中的一种
        }
      }
    }
  }
});

export const func = new Func({
  plugins: [http],
  handler(){
    return http.params.id; // 返回传入的 id
  }
});

Cookie 使用示例

import { Func } from '@faasjs/func';
import { Http } from '@faasjs/http';

const http = new Http({
  validator: {
    cookie: {
      rules: {
        distinct_id: {
          required: true // 若 cookie 中没有 distinct_id 则报错
        }
      }
    }
  }
});

export const func = new Func({
  plugins: [http],
  handler(){
    http.cookie.write('user_id', http.cookie.read('distinct_id')); // 将 cookie 中的 distinct_id 写入为 user_id
  }
});

Session 使用示例

import { Func } from '@faasjs/func';
import { Http } from '@faasjs/http';

const http = new Http({
  validator: {
    session: {
      rules: {
        distinct_id: {
          required: true // 若 session 中没有 distinct_id 则报错
        }
      }
    }
  }
});

export const func = new Func({
  plugins: [http],
  handler(){
    http.session.write('user_id', http.session.read('distinct_id')); // 将 session 中的 distinct_id 写入为 user_id
  }
});

Http 插件文档

详细文档见 Http 插件。

更新时间: 2025/4/27 05:45
Prev
使用插件
Next
数据库操作