提问者:小点点

如何在一个函数中定义两个导出处理程序,并在另一个处理程序中使用来自一个处理程序的变量?


我对Node JS Lamda函数还是个新手,还在学习。

我有一个函数,下面是测试工作代码:

const https = require("https")
var url = "https://docs.aws.amazon.com/lambda/latest/dg/welcome.html"

exports.handler = async (event) => {
  var variable_1 = "test 1"
  var variable_2 = "test 2"

  // TODO implement
  const response = {
    statusCode: 200,
    body: JSON.stringify("Hello from Lambda!") + url,
  }

  return response
}

我需要在同一个函数内执行两个操作。像这样有两个出口处理程序可能吗?如何在另一个处理程序中使用来自一个处理程序的变量?

const https = require("https")
var url = "https://docs.aws.amazon.com/lambda/latest/dg/welcome.html"

exports.handler = async (event) => {
  var variable_1 = "test 1"
  var variable_2 = "test 2"

  // TODO implement
  const response = {
    statusCode: 200,
    body: JSON.stringify("Hello from Lambda!") + url,
  }

  return response
}

//second handler - is this possible?

exports.handler = async (event) => {
  var variable_3 = variable_1 + variable_2

  // TODO implement
  const response2 = {
    statusCode: 200,
    body:
      JSON.stringify("Hello from Lambda - 2nd function!") + url + variable_3,
  }

  return response2
}

共1个答案

匿名用户

您所做的是创建多个导出函数,如下所示;

// First Function
exports.doSomethingA= async function() {
return something;
};


// Second Function
   exports.doSomethingB= async function() {
   return something;
};

假设这两个函数位于一个名为customer.js的文件中-您可以将它们导入另一个文件中,并按如下方式调用该函数;

const customer = require('./customer');

exports.doSomethingC= async function() {
  await customer.doSomethingA();
  await customer.doSomethingB();
}

在您的情况下,我将有一个带有这两个函数的独立文件。然后在处理程序中调用这些函数,如上所示。别忘了进口。