Невозможно подключиться к базе данных Azure Cosmos db из приложения Azure с помощью Node.js. - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь отправить входящие данные из Интернета вещей в космическую БД.Я получаю данные в приложении функций, но, к сожалению, я не могу подключиться к космической БД с помощью предоставленной строки подключения (в быстром запуске Космоса БД и блейде строки подключения.

Ниже мое приложение node.js:

module.exports = function (context, IoTHubMessage) {
  try {
    var dbName = "temp-db";
    var collectionName = "messages";

    context.log(`JavaScript eventhub trigger function called for message array: ${IoTHubMessage}`);
    context.log(`datatype of message: ${typeof IoTHubMessage}`);
    var json_message = JSON.stringify(IoTHubMessage);
    context.log(`json message: ${json_message}`);

    var mongoClient = require("mongodb").MongoClient;
    context.log('MongoClient created');
    const pass = "Q********************XTB988aNw4CecjmZsSqTpCeXkjlzCrmljzjq58T9AqeuVvSJrUPBpc4rBSSD1CQ=="    
    const encodedpass = encodeURIComponent(pass)
    const connectionString= `mongodb://iot-db:${pass}@iot-db.documents.azure.com:10255/?ssl=true`

    context.log(`connection string:\n ${connectionString}`)
    mongoClient.connect(connectionString, function (err,client){
    context.log('check0...');
    if(err){
        context.log(`Error occurred while connecting to DB ${err}`)
    } else{
        context.log('MongoClient connected to DB');
    }
      context.log('check1...');

      var collection = client.db(dbName).collection(collectionName);
      context.log('MongoClient collection retreived');
      collection.insertOne(IoTHubMessage, {w: 1});
      //collection.insertOne({"testKey": 13.56}, {w: 1});
      client.close();
      context.log(`Saved message: ${IoTHubMessage}`);
      context.done();
    });

    context.log('check2...');
  } catch (e){
    context.log(`Error ${e}`);
  }

  context.log('Done called');
  context.done();
};

Вот проблемы, с которыми я сталкиваюсь:

  1. Вышеуказанное приложение не выдает никакой ошибки, но во время работы функция обратного вызова не выполняется (я знаю этопотому что распечатки не происходят внутри функции обратного вызова.)
  2. Я попытался передать пароль без кодировки URI. Затем он входит в функцию обратного вызова, но жалуется, что пароль содержит недопустимые символы.
  3. при передаче закодированного пароля он не входит в функцию обратного вызова.
  4. Как проверить, какой драйвер узла я сейчас использую?
  5. Как проверить, открыт ли мой порт 10255 или нет?

Я прилагаю скриншот приложения node.js

screenshot of the code on portal

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...