节点.js回调函数不返回值
node.js callback function does not return value
我想将错误或结果返回到postdata函数,但它不起作用。
我正在使用猫鼬数据库,集合名称为"演示"。
Demo.prototype.postdata = function(username, mobile, image) {
var data = new conn.Demo({username, mobile, image});
data.save(function(err, result) {
if (err) {
return err;
} else {
return result;
}
});
return data.save();
}
Scope;你寻求的答案是如何处理从'data.save()'返回的变量的作用域。
在JavaScript和其他语言中,无论是解释型语言(php,bash,asp,JavaScript,vbscript,jsp,go等)还是编译(c,c ++,c#,objective-c等)都使用范围。
变量的范围可以是全局的,也可以是局部的。此示例中的变量 'result' 和 'err' 在 'data.save()' 函数的范围内是本地的,因此父函数无法访问;Demo.prototype.postdata().
在这一点上,我确实相信其他评论者是正确的,这个问题在可变范围方面可能是重复的。
我得到了答案...
function rawBody(req, res, next) {
var chunks = [];
req.on('data', function(chunk) {
chunks.push(chunk);
});
req.on('end', function() {
var buffer = Buffer.concat(chunks);
req.bodyLength = buffer.length;
req.rawBody = buffer;
next();
});
req.on('error', function (err) {
console.log(err);
res.status(500);
});
}
router.post('/:mobile/:username',rawBody,function(req,res){
if(req.rawBody && req.bodyLength>0){
var data={
mobile:req.params.mobile,
username:req.params.username,
image:req.rawBody
}
content.postdata(data,callback);
function callback(data){
console.log(data);
}
}
})
Demo.prototype.postdata=function(data,callback)
{
var data=new conn.Demo(data);
data.save(function(err,result){
if(err){
callback(err)
}else{
callback("successfully save");
}
})
}
相关文章:
- 根据是否解析了 Promise 从函数返回值
- Angular,函数在(模型)工厂中返回值
- Javascript中带有返回值的嵌套函数
- 从Ajax函数返回值
- HTML如何根据javascript函数的返回值限制文本输入
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- 如何从嵌套的API函数返回值
- 如何记录调用另一个函数的函数的返回值
- 即使使用回调函数也无法返回值
- PHP 函数不会向 JavaScript 变量返回值
- 从异步函数返回值
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 从节点中的回调函数返回值
- 从另一个文件访问函数的返回值
- 从JSP页面调用Java Script函数未返回值
- jquery csv函数,如何返回值
- Scala提升了如何运行javascript函数并将返回值存储在变量中
- 等待函数完成,然后将返回值分配给变量JS
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 在 html 输入字段中使用返回值函数