Botframework TypeError:azure.DocumentDbClient不是构造函数

Botframework TypeError:azure.DocumentDbClient不是构造函数,botframework,Botframework,我正在构建一个bot,使用具有以下依赖项的节点SDK连接到Azure Cosmos DB: "dependencies": { "botbuilder": "~4.6.2", "botbuilder-azure": "^4.6.2", }, 这是我从中复制的代码。本教程是针对SDK v3的,不幸的是,对于此配置,没有针对v4的正式教程 var azure=require('botbuilder-azure'); var documentDbOptions={ 主持人:, 万能钥

我正在构建一个bot,使用具有以下依赖项的节点SDK连接到Azure Cosmos DB:

"dependencies": {
    "botbuilder": "~4.6.2",
    "botbuilder-azure": "^4.6.2",
},
这是我从中复制的代码。本教程是针对SDK v3的,不幸的是,对于此配置,没有针对v4的正式教程

var azure=require('botbuilder-azure');
var documentDbOptions={
主持人:,
万能钥匙:,
数据库:'数据库',
收藏:“收藏”
};
var docDbClient=new azure.DocumentDbClient(documentDbOptions);
var cosmosStorage=new azure.AzureBotStorage({gzipData:false},docDbClient);
以下是完整的异常堆栈:

evandro@mypc:~/Projects/pluralsight-bot$ npm start

> pluralsight-bot@1.0.0 start /home/evandro/Projects/pluralsight-bot
> node ./index.js

/home/evandro/Projects/pluralsight-bot/index.js:28
var docDbClient = new azure.DocumentDbClient(documentDbOptions);
                  ^

TypeError: azure.DocumentDbClient is not a constructor
    at Object.<anonymous> (/home/evandro/Projects/pluralsight-bot/index.js:28:19)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)
    at internal/main/run_main_module.js:17:11
evandro@mypc:~/Projects/pluralsight机器人$npm启动
>多视距-bot@1.0.0启动/主页/evandro/Projects/pluralsight机器人
>node./index.js
/home/evandro/Projects/pluralsight-bot/index.js:28
var docDbClient=new azure.DocumentDbClient(documentDbOptions);
^
TypeError:azure.DocumentDbClient不是构造函数
反对。(/home/evandro/Projects/pluralsight-bot/index.js:28:19)
at模块编译(内部/modules/cjs/loader.js:959:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:995:10)
在Module.load(内部/modules/cjs/loader.js:815:32)
at Function.Module._load(内部/modules/cjs/loader.js:727:14)
位于Function.Module.runMain(internal/modules/cjs/loader.js:1047:10)
在internal/main/run\u main\u module.js:17:11

您链接的教程日期为2017年12月12日。在Bot框架中,这已经过时了,特别是因为它是针对v3而不是v4的。在顶部,它有一个到v4的链接,尽管它只带您到文档的v4,而不是文章

以下是相关代码:

const{CosmosDbPartitionedStorage}=require(“botbuilder azure”);
[...]
//已初始化以访问.env文件中的值。
const ENV_FILE=path.join(_dirname,'.ENV');
require('dotenv').config({path:ENV_FILE});
//创建本地内存存储-注释掉。
//var storage=newmemoryStorage();
//创建对CosmosDb存储的访问-这将取代本地内存存储。
var存储=新CosmosDbPartitionedStorage({
cosmosDbEndpoint:process.env.DB_SERVICE_端点,
authKey:process.env.AUTH_KEY,
databaseId:process.env.DATABASE_ID,
containerId:process.env.CONTAINER
})
注意:如果使用的是未分区的现有数据库,则需要使用
CosmosDbStorage
而不是
CosmosDbPartitionedStorage
。此外,文档中的示例错误地导入了
CosmosDbStorage
,而不是
CosmosDbPartitionedStorage
。我已经提交了一份公关来解决这个问题