请求处理程序(Handler) 本文介绍如何使用Node.js请求处理程序响应接收到的事件并执行相应的业务逻辑。 请求处理程序 请求处理程序 是您提供的一个方法。当您的函数被调用时,函数计算会运行该方法处理请求。 您可以通过函数计算控制台页面 配置请求处理程序 ,对于Node.js语言的函数,请求处理程序需配置为 [文件名].[方法名]。例如,您的文件名为index.js或index.mjs,方法名为handler,则请求处理程序可配置为 index.handler。 ES模块和CommonJS模块的事件请求处理程序的方法签名分别定义如下: ES模块 // index.mjs export const handler async (event, context) > { console.log("receive event: n" + event); return "Hello World!"; }; CommonJS模块 // index.js exports.handler async function(event, context) { console.log("receive event: n" + event); return "Hello World!"; }; 方法名 您可以自定义方法名称,或与函数计算控制台配置的请求处理程序相对应。如:handler。 event入参 您调用函数时传入的参数。 context入参 context参数中包含一些函数的运行时信息。 示例:JSON格式参数解析 如下示例中,我们解析函数调用入参event为JSON,然后获取userName字段的值: ES模块 export const handler async (event, context) > { var eventObj JSON.parse(event.toString()); return eventObj['key']; }; CommonJS模块 exports.handler function(event, context, callback) { var eventObj JSON.parse(event.toString()); callback(null, eventObj['key']); }; 示例:HTTP触发器 调用函数 如下示例中,我们处理传入的事件,如果是HTTP请求,则读取并解码请求体,然后原样返回给调用者: ES模块 'use strict'; export const handler async (event, context) > { const eventObj JSON.parse(event); console.log(receive event: ${JSON.stringify(eventObj)}); let body 'Hello World!'; // get http request body if ("body" in eventObj) { body eventObj.body; if (eventObj.isBase64Encoded) { body Buffer.from(body, 'base64').toString('utf8'); } } console.log(receive http body: ${body}); return { 'statusCode': 200, 'body': body }; } CommonJS模块 'use strict'; exports.handler (event, context, callback) > { const eventObj JSON.parse(event); console.log(receive event: ${JSON.stringify(eventObj)}); let body 'Hello World!'; // get http request body if ("body" in eventObj) { body eventObj.body; if (eventObj.isBase64Encoded) { body Buffer.from(body, 'base64').toString('utf8'); } } console.log(receive http body: ${body}); callback(null, { 'statusCode': 200, 'body': body }); }