ibm的watson-developer-cloud Node.js sdk的发现模块中的updateDocument api坚持一个文件参数

我试图通过watson-developer-cloud Node.js SDK在IBM的发现服务中插入/更新文档,但它不工作。 我的一些文档没有关联的文件,所以它们只是元数据。 本文档指出You must provide document content, metadata, or both. 但是,如果您尝试更新仅包含元数据的文档, updateDocument调用将失败。

我跟踪到的问题607行node-sdk / discovery / v1.js这是requiredParams: ['environment_id', 'collection_id', 'document_id', 'file'] ,我相信这是问题的根源,因为它表明“文件”是一个必需的参数,与API文档所述相反。 API文档必须是正确的,因为我可以在发现API浏览器中更新仅有元数据的文档。

你只需要确保你调用updateJsonDocument()并发送一个空的对象

 const DiscoveryV1 = require('watson-developer-cloud/discovery/v1'); const fs = require('fs'); const discovery = new DiscoveryV1({ username: 'YOUR USERNAME', password: 'YOUR PASSWORD', version_date: DiscoveryV1.VERSION_DATE_2017_08_01 }); discovery.updateJsonDocument( { environment_id: 'YOUR ENVIRONMENT ID', collection_id: 'YOUR COLLECTION ID', configuration_id: 'YOUR CONFIGURATION ID', file: {}, metadata: { foo: 'bar' } }, function(error, data) { if (error) { console.log(error); } else { console.log(data); } } ); 

文档没有更新,但您可以在这里看到该方法。