You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sails中能否将Actions2用于携带查询参数的GET请求

解答:Sails.js Actions2能否处理带查询参数的GET请求

完全可以将Actions2用于携带查询参数的GET请求,你提到的通过input.id、input.age直接访问对应参数的用法是完全支持的。

Actions2底层会自动聚合所有请求来源的参数,包括GET查询参数、POST请求体参数、URL路径占位参数,无需开发者手动区分参数来源。只要你在Action的inputs配置中声明了对应参数名,就能直接通过inputs对象读取到对应值。

完整使用示例

1. 编写Action文件

// api/controllers/get-user.js
module.exports = {
  friendlyName: '查询用户',
  description: '根据ID和年龄筛选用户',

  inputs: {
    id: {
      type: 'number',
      required: true,
      description: '用户唯一标识ID'
    },
    age: {
      type: 'number',
      required: true,
      description: '用户年龄'
    }
  },

  exits: {
    success: {
      responseType: 'json'
    },
    notFound: {
      responseType: 'notFound'
    }
  },

  fn: async function (inputs, exits) {
    // 直接通过inputs读取GET查询参数的值
    const targetUser = await User.findOne({
      id: inputs.id,
      age: inputs.age
    });
    if (!targetUser) {
      return exits.notFound();
    }
    return exits.success(targetUser);
  }
};

2. 配置路由

在config/routes.js中添加路由绑定即可,不需要额外处理参数:

module.exports.routes = {
  'GET /path/filename': 'get-user',
  // 其他路由...
};

补充说明

如果你需要获取没有在inputs中声明的额外查询参数,可以通过this.req.query直接读取原始的GET查询参数对象。

内容的提问来源于stack exchange,提问作者van_mac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:36:03