gpt4 book ai didi

node.js - 如何在node.js中使用marklogic查询结果

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:07 25 4
gpt4 key购买 nike

我已经进行了广泛的研究,但找不到任何关于如何使用 node.js 内的 marklogic 模块的查询结果的示例...

大多数示例都会对结果执行 console.log() 操作,仅此而已,但是如果我需要查询结果(例如在 JSON 数组中并稍后使用这些结果,该怎么办?

似乎我在这里缺少一些node.js ascynch 的东西...

Example :

var marklogic = require('marklogic');
var my = require('./my-connection.js');

var db = marklogic.createDatabaseClient(my.connInfo);
var qb = marklogic.queryBuilder;

db.documents.query(
qb.where(qb.parsedFrom('oslo'))
).result( function(results) {
console.log(JSON.stringify(results, null, 2));
});

// I would like to use the results here
// console.log(JSON.stringify(results, null, 2))

现在的问题是我想稍后在此脚本中使用结果对象。我尝试过使用 .then(),或将其传递给变量并返回该变量,但没有成功。

问候,

雨果

最佳答案

简单的答案:您需要从 result() 回调中继续您的业务逻辑。

更详细地说,您的目标是使用异步计算或请求的结果执行某些操作。由于 JS 没有原生异步功能(例如线程),因此通常使用回调来异步恢复操作。最重要的是要认识到,您无法返回异步计算或请求的结果,但必须在完成后恢复控制流。定义大量函数有助于使此类代码更易于阅读和理解。

这个例子说明了正在发生的事情:

process.nextTick(function() {
console.log('second')
})

console.log('first')

该程序将记录第一个,然后是第二个,因为process.nextTick()异步调用提供给它的回调函数(在事件循环的下一轮)。

答案在How do I get started with Node.js提供大量资源来更好地理解 Node.js 的异步编程。

关于node.js - 如何在node.js中使用marklogic查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34818562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com