Я довольно плохо знаком с навыками Алексы.Я сделал навык 'hello world' и получил несколько HTTP-запросов.
Теперь я пытаюсь подключить свой навык к существующему атласному кластеру MongoDB.Моя цель - извлечь некоторые данные из моего кластера и использовать их в своем умении, чтобы ответить пользователю, который задал вопрос Алексе.
Я думаю, что установил соединение с атласом, но когда я пытаюсь что-то сделать с моей коллекциейиз БД я получаю сообщение «Ошибка MongoError: Топология была уничтожена».
Как я уже читал, проблема может быть в рабочем процессе из AWS Lambda.Он работает без сохранения состояния, и соединение может быть разорвано, когда я пытаюсь прочитать коллекцию, но я не знаю, как мне решить эту проблему.
Это мой текущий подход к установлению соединения и просто печати счетчика.из моих документов.Я проверил, как перемещать клиентскую часть соединения в моем навыке, но я всегда получаю одну и ту же ошибку.
Текущий подход к установлению соединения
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<USER>:<PASS>@<CLUSTER>?retryWrites=true";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
const collection = client.db("database").collection("data");
console.log(collection.countDocuments());
client.close();
});
Вот как один Намерениеиз моих навыков выглядит так:
const HelloWorldIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'HelloWorldIntent';
},
handle(handlerInput) {
const speechText = 'Hello World!';
return handlerInput.responseBuilder
.speak(speechText)
//.reprompt('add a reprompt if you want to keep the session open for the user to respond')
.getResponse();
}};
Вот как выглядит настоящая ошибка:
Promise {
<rejected> { MongoError: Topology was destroyed
at initializeCursor (/var/task/node_modules/mongodb-
core/lib/cursor.js:603:25)
at nextFunction (/var/task/node_modules/mongodb-core/lib/cursor.js:463:12)
at AggregationCursor.Cursor.next (/var/task/node_modules/mongodb-core/lib/cursor.js:763:3)
at AggregationCursor.Cursor._next (/var/task/node_modules/mongodb/lib/cursor.js:211:36)
at fetchDocs (/var/task/node_modules/mongodb/lib/operations/cursor_ops.js:217:12)
at toArray (/var/task/node_modules/mongodb/lib/operations/cursor_ops.js:247:3)
at executeOperation (/var/task/node_modules/mongodb/lib/utils.js:420:24)
at AggregationCursor.Cursor.toArray (/var/task/node_modules/mongodb/lib/cursor.js:824:10)
at countDocuments (/var/task/node_modules/mongodb/lib/operations/collection_ops.js:233:37)
at /var/task/node_modules/mongodb/lib/utils.js:437:24 name: 'MongoError', [Symbol(mongoErrorContextSymbol)]: {} } }