该错误已从版本3.3.1解决.
这是一个错误,补丁即将发布.这个变通方法--由Phil Barber提供,他是存储库的一名贡献者--在此期间对我起了作用.感谢大家的及时回复!
In the meantime, the work-around is to not have the "database" property in the connection settings and to use a REST port with the correct database assigned.
个
对于任何想要跟踪任何更新的人,这里有the issue link美元.
如果有人能就我在MarkLogic数据移动Node.js API中使用queryAll()
函数遇到的问题分享他们的专业知识,我将不胜感激.
我try 了一个简单的queryAll()
示例,结果出现了以下错误:
MarkLogicError:Read ForestInfo:无法使用路径处理状态为405的响应.
此功能当前是否可用?我是否需要进行任何额外的配置或权限更改,或安装任何额外的插件?
The MarkLogic documentation引用queryAll()函数,其中有an example query on GitHub.当涉及到读取批量数据时,定制数据服务是否是更首选的方法?
以下是一些其他背景:
-
MarkLogic的文档《Data Moving in the Node.js API》:https://docs.marklogic.com/guide/node-dev/datamovement
-
GitHub上的queryAll()示例:https://github.com/marklogic/node-client-api/blob/master/examples/queryAll-documents.js
-
下面是我收到的405状态错误的简单代码示例:
const marklogic = require("marklogic");
const connection = require("./settings").connection;
const db = marklogic.createDatabaseClient(connection);
const qb = marklogic.queryBuilder;
const ctsQb = marklogic.ctsQueryBuilder;
const query = qb.where(ctsQb.cts.directoryQuery(["/object/"]));
try {
db.documents.queryAll(query, {
onCompletion: (summary) => {
console.log(summary.urisReadSoFar+' uris were retrieved successfully.');
console.log(summary.urisFailedToBeRead+' uris failed to be retrieved.');
console.log('Time taken was '+summary.timeElapsed+' milliseconds.');
},
})
} catch (err) {
console.error("QueryAll Error: ", err);
}
- 我确认了简单的CTS查询在这个更简单的查询示例中是有效的:
const query = qb.where(ctsQb.cts.directoryQuery(["/object/"]));
db.documents.query(query).result(
(documents) => {
documents.forEach((doc) => {
console.log(doc);
});
console.log(`${documents.length} uris were retrieved successfully.`);
},
(error) => {
console.log("Error: ", error);
}
);
- 此外,REST API访问日志(log)显示以下条目:
127.0.0.1 - admin [28/Jan/2024:17:57:48 -0500] "POST /v1/internal/forestinfo&database=my-db-dev HTTP/1.1" 405 0 - -
- 它是一个本地MarkLogic 11实例(不是DataHub),请求是以MarkLogic管理员用户权限运行的.
在查找此Node.js函数时,我只找到了上面提到的有限内容.你能提供的任何帮助都是最好的.