【发布时间】:2019-12-28 22:49:39
【问题描述】:
在 lambda 函数中,我有以下代码:
var user;
exports.handler = function uploadToS3(event, context, callback) {
var name = event["username"];
MongoClient.connect(uri, { useNewUrlParser: true }, (error, client) => {
if (error) return 1; // Checking the connection
db = client.db(databasename);
db.collection("user_profile").findOne({ username: name }, function(
err,
result
) {
if (err) throw err;
user = result._id;
console.log(user); // 1st console.log
});
});
console.log(user); //2nd console.log
};
在上面的代码中,我已经将 user 声明为一个全局变量。在第一个 console.log 中它将显示该值,但在第二个 console.log 中它将未定义。找到以下 lambda 函数的输出。
Function Logs:
2019-08-23T15:23:34.610Z 83141f62-f840-4e52-9440-35f3be7b0dc8
5d5eaa9f921ed00001ee1c3f
2019-08-23T15:23:34.192Z 83141f62-f840-4e52-9440-35f3be7b0dc8
undefined
在第二种情况下如何获取值?
【问题讨论】:
-
为什么要在全局范围内声明用户?
-
@Peter 我需要在其他函数中使用这就是为什么我提到用户作为全局变量
标签: node.js aws-lambda