Sails基础之Controller层

这篇博客探讨了Sails框架中Controller层的变化,特别是Action的使用。Action2格式的Action提供了更清晰的业务逻辑表达,类似半文档半校验器。博客详细介绍了如何创建Action2的signup和login动作,涉及Model、View和Controller层的交互,并提供了一个登录验证的实例。同时,也提到了Classic Action,即与Sails v0.12兼容的传统Controller实现方式。
摘要由CSDN通过智能技术生成

通过前面的使用,我们可以看出Sails中MVC的结构更倾向于MVP的概念,Presenter在Sails中被称之为Actions:

They often act as a middleman between your models and views.

Controller层这个结构上的变化是Sails v1.0中新提出的方案,Action可以使用classic和actions2两种格式,另外,仍然兼容支持Sails v0.12上的Controller实现方式。相对于肿胀的Controller,将Controller拆分成多个Action可以更清晰的表达业务逻辑,其中actions2格式的Action更是一种半文档半校验器的形式,可以从接口描述、接口参数、参数校验、逻辑、退出方式等方面构建整个业务逻辑。

Actions

Action2 Action

Action2格式的action与Helper基本相似,需要做调整的主要是各种与Controller层职责相关的exit方式。我们来创建一个signup action:

sails generate action user/login

我们可以编写一个用于登录验证的action,从而实现登录业务逻辑:

  1. Model层
    Model层我们使用前面案例中的User Model:
const crypto = require('crypto'); 
const uuid = require('node-uuid');

module.exports = {
   
  primaryKey: 'uuid',
  attributes: {
   
    uuid: {
   
      type: 'string',
      required: true,
    },
    username: {
   
      type: 'string',
      required: true,
      allowNull: false,
      unique: true,
    },
    password: {
   
      type: 'string',
      required: true,
      allowNull: false,
    },

  },
  customToJSON: function() {
   
    return _.omit(this, ['password']);
  },
  beforeCreate: function (valuesToSet, proceed) {
   
    let md5 = crypto.createHash('md5');
    valuesToSet.uuid = uuid.v4();
    valuesToSet.password = md5.update(valuesToSet.password)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值