Javascript 如何将函数中的变量作为全局变量获取?
我收到http post消息,但无法在Javascript 如何将函数中的变量作为全局变量获取?,javascript,node.js,serverless-framework,alibaba-cloud,Javascript,Node.js,Serverless Framework,Alibaba Cloud,我收到http post消息,但无法在getRawBody函数之外获取正文 这是我的密码: getRawBody(req, function(err, body) { for (var key in req.queries) { var value = req.queries[key]; resp.setHeader(key, value); } string = params.body = body.toString(); string=q
getRawBody
函数之外获取正文
这是我的密码:
getRawBody(req, function(err, body) {
for (var key in req.queries) {
var value = req.queries[key];
resp.setHeader(key, value);
}
string = params.body = body.toString();
string=querystring.parse(string);
data=string.data;
object=JSON.parse(data);
console.log(object)
resp.send(JSON.stringify(object, null, ' '));
});
console.log(object);
第一个控制台日志输出正确的JSON,如
{id:'ddeklj'}
但是第二个控制台日志输出是未定义的
我的问题是:如何从函数中获取variables对象?在函数外部声明变量,然后在函数内部初始化它
let a;
Function getData(){
a = 20;
}
getData();
console.log(a);
看起来您正在使用阿里云函数Compute,并试图从http请求中获取主体的值 阿里云的函数将主体作为缓冲区发送进来,您所引用的示例代码有点混乱。 您可以通过如下操作从req中提取主体:
var getRawBody = require('raw-body');
module.exports.handler = async function (req, resp, context) {
var getBody = await getRawBody(req);
var bodyToString = getBody.toString();
console.log(bodyToString );
}
您是在函数外部尝试init变量,还是在window.object中尝试init?回调,这就是您需要的。如果这是异步函数,则尝试使用Promise