Node.js Lambda函数在调用回调后返回null
我正在编写一个Node.js Lambda函数在调用回调后返回null,node.js,amazon-web-services,aws-lambda,Node.js,Amazon Web Services,Aws Lambda,我正在编写一个lambda函数并返回一个回调,但响应为空 我的函数看起来像 var CloudmersiveValidateApiClient = require('cloudmersive-validate-api-client'); var defaultClient = CloudmersiveValidateApiClient.ApiClient.instance; // Configure API key authorization: Apikey var Apikey = defa
lambda
函数并返回一个回调,但响应为空
我的函数看起来像
var CloudmersiveValidateApiClient = require('cloudmersive-validate-api-client');
var defaultClient = CloudmersiveValidateApiClient.ApiClient.instance;
// Configure API key authorization: Apikey
var Apikey = defaultClient.authentications['Apikey'];
Apikey.apiKey = 'API-KEY';
// Create an instance
var apiInstance = new CloudmersiveValidateApiClient.EmailApi();
exports.handler = async (event, context, callback) => {
var email = event.email;
apiInstance.emailFullValidation(email, callbackcm);
var callbackcm = function(error, data, responsed) {
if (error) {
callback(null, {
"Error": JSON.stringify(error)
});
} else {
callback(null, {
"Body": JSON.stringify(data)
});
}
};
};
我回来的方式有什么问题吗?你的顺序不对。将
callbackm
函数作为参数传入后,可以指定该函数。您需要执行以下操作之一:
exports.handler = async (event, context, callback) => {
var email = event.email;
var callbackcm = function(error, data, responsed) {
// ....
};
apiInstance.emailFullValidation(email, callbackcm);
};
或者这样做:
exports.handler = async (event, context, callback) => {
var email = event.email;
apiInstance.emailFullValidation(email, callbackcm);
function callbackcm (error, data, responsed) {
// ....
};
};
这是因为javascript分两个阶段解析代码。谷歌“提升”获取更多关于这种行为的信息。尝试调用
apinstance.emailFullValidation(email,callbackcm)设置callbackcm后的code>
variable@MaiKaY,谢谢你的意见。这真的很有帮助。@K.Liu,您可以在本地安装它,然后压缩整个代码,包括节点_模块
,并将其上载到lambda。另外,请查看我对其他问题的回答,以了解更多有关角落案例的详细信息:非常感谢。我也来看看。