最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

此nodejs代码中exports.handler的用途是什么?

运维笔记admin89浏览0评论

此nodejs代码中exports.handler的用途是什么?

此nodejs代码中exports.handler的用途是什么?

我正在探索AWS开发工具包,并且遇到了用于Amazon connect的代码。

const AWS = require('aws-sdk');
AWS.config.update({ region: 'us-east-1' });
console.log('initiated')
exports.handler = (event, context, callback) => {
    console.log('Running...')
    let connect = new AWS.Connect();
    console.log('Connect...')
    const customerName = event.name;
    const customerPhoneNumber = event.number;
    const dayOfWeek = event.day;

    let params = {
        "InstanceId" : '12345l-abcd-1234-abcde-123456789bcde',
        "ContactFlowId" : '987654-lkjhgf-9875-abcde-poiuyt0987645',
        "SourcePhoneNumber" : '+1123456789',
        "DestinationPhoneNumber" : customerPhoneNumber,
        "Attributes" : {
            'name' : customerName,
            'dayOfWeek' : dayOfWeek
        }

    }

    connect.startOutboundVoiceContact(
        params, function (error, response){

            if(error) {
                console.log(error)
                callback("Error", null);
            } else
            {
                console.log('Initiated an outbound call with Contact Id ' + JSON.stringify(response.ContactId));
                callback(null, 'Success');
            }
        }
        );


};
console.log('completed')

当我以standalone代码(例如node test.js)运行时,我同时收到以下日志,并且代码终止。

node test.js
initiated
completed

为什么exports.handler内部的代码未运行?还是异步运行?如果是这样,我如何以node test.js之类的独立方式运行此代码?

回答如下:

exports.handler是由路由器调用的入口点。

通常在expressjs路由器中,需要两个最小参数。第一个是URL,第二个是处理程序。所以当你点击URL

    app.get('/',handler)

    const handler =  function (req, res) {
      res.send('Hello World!')
    }

所以现在您的问题是在此nodejs代码中exports.handler的用途是什么?

您基本上在AWS Lambda中点击了Lambda函数。处理程序是Lambda函数中处理事件的方法。调用函数时,运行时将运行处理程序方法。当处理程序退出或返回响应时,它可用于处理另一个事件。

AWS Lambda Function Handler in Node.js

发布评论

评论列表(0)

  1. 暂无评论