Javascript 函数不返回JSON属性值-node.js

Javascript 函数不返回JSON属性值-node.js,javascript,node.js,asynchronous,promise,Javascript,Node.js,Asynchronous,Promise,我已经在coach.db上创建了一个数据库,我正在使用coach.GET方法来检索文档数据。我创建了一个测试函数,该函数将检索“name”对象的值,并通过console.log输出结果 function sendDB() { couch.get(dbName, viewUrl).then( function(data, headers, status){ console.log(data.data.rows[0].value.name);

我已经在coach.db上创建了一个数据库,我正在使用coach.GET方法来检索文档数据。我创建了一个测试函数,该函数将检索“name”对象的值,并通过console.log输出结果

function sendDB() {
    couch.get(dbName, viewUrl).then(
        function(data, headers, status){
            console.log(data.data.rows[0].value.name);
        }
    )
}

sendDB();
在上面的函数中,输出应该是“johndoe”。当我尝试返回
data.data.rows[0].value.name的值时,会出现问题

function sendDB() {
    couch.get(dbName, viewUrl).then(
        function(data, headers, status){
            DB = JSON.stringify(data.data.rows[0].value.name);
            return DB;
        }
    )
}

console.log(sendDB());

在上面的函数中,控制台显示为“undefined”,我很困惑。我需要在其他函数中使用返回值,因此非常感谢您的帮助。谢谢

您需要从
sendDB()
返回承诺。目前没有返回到外部函数的

由于承诺是异步的,因此需要使用链接到函数调用的
then()

function sendDB() {
   // return the promise
   return couch.get(dbName, viewUrl).then(
        function(data, headers, status){
            DB = JSON.stringify(data.data.rows[0].value.name);
            return DB;
        }
    )
}
sendDB().then(function(DB){
    console.log(DB);
});

我将return语句放入外部函数中,并在编写时调用该函数,但出现了一个错误,即“无法读取属性”,然后是“of undefined”。我是初学者,如果我的问题不好,我道歉。谢谢谢谢你,我很抱歉没有看到返回写在沙发外面。get statement这没有回答你的问题,但是你的函数参数有问题,
函数(数据、标题、状态)
。该函数将被传递给
,然后
,因此它将只有一个参数,就像任何其他承诺一样。这个特定的API传递一个包含3个属性的对象,
数据
状态
。一些
节点couchdb
示例使用解构,例如
函数({data,headers,status})
来分离该对象。请注意代码中缺少的大括号。如果您有旧版本的Node,它可能不支持解构。