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
相关产品推荐
相关产品推荐

