Node.js 缺少必需的标头授权。确保在Azure Cosmos DB中传递了有效的授权令牌

Node.js 缺少必需的标头授权。确保在Azure Cosmos DB中传递了有效的授权令牌,node.js,azure-cosmosdb,azure-cosmosdb-sqlapi,azure-cosmosdb-mongoapi,Node.js,Azure Cosmosdb,Azure Cosmosdb Sqlapi,Azure Cosmosdb Mongoapi,messageToCosmos函数正在我的虚拟项目中工作,但不在这里;我越来越 {错误:缺少必需的头授权。请确保有效的头授权 已传递授权令牌。ActivityId: 1250064f-f72d-4b73-adb7-4f2bcd91e778, Microsoft.Azure.Documents.Common/2.7.0 请查找messageToCosmos函数,您可以尝试一下。我已经给出了我的密钥和结束点 const express = require('express') const bodyP

messageToCosmos函数正在我的虚拟项目中工作,但不在这里;我越来越

{错误:缺少必需的头授权。请确保有效的头授权 已传递授权令牌。ActivityId: 1250064f-f72d-4b73-adb7-4f2bcd91e778, Microsoft.Azure.Documents.Common/2.7.0

请查找messageToCosmos函数,您可以尝试一下。我已经给出了我的密钥和结束点

const express = require('express')
const bodyParser = require('body-parser')
const mongoose = require('mongoose')
require('dotenv').config();
var fs = require('fs');
var https = require('https');
var http = require('http');
const app = express();
const dbString = 'mongodb://localhost:27017/blue-isSecure';
const messageRoute = require('./routes/messages')
const multer = require('multer');
const path = require('path');
// const fileUpload = require('express-fileupload');
const cors = require('cors')
const cron = require('node-cron')



// cosmos
const CosmosClient = require('@azure/cosmos').CosmosClient;
const config = require('./config')

const endpoint = config.endpoint;
const cosmosKey = config.key;
const client = new CosmosClient({ endpoint, cosmosKey });

const databaseId = config.database.id
const containerId = config.container.containerMessages




const fileStorage = multer.diskStorage({
    destination:(req, file, cb ) =>{
        cb(null,'files')
    },
    filename:(req, file, cb) => {
        cb(null, file.originalname)
    }
})
// app.use(cors)
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:false}))
 app.use(multer({storage:multer.memoryStorage()}).single('file'))

// app.use(fileUpload({
//     useTempFiles:true
// }))

app.use('/files', express.static(path.join(__dirname,'files')))
app.use('/blue-isSecure',messageRoute)

async function messageToCosmos(itemBody) {
    const { item } = await client.database(databaseId).container(containerId).items.upsert(itemBody);
    console.log(`Created family item with id:\n${itemBody.id}\n`);
  };

  messageToCosmos({message:'hey buddy'}).catch(err =>console.log(err))

mongoose.connect(dbString,{useNewUrlParser:true, useUnifiedTopology:true})
    .then(connect =>{
        app.listen(process.env.PORT || 2020)
        console.log('listening')
    })
    .catch(err => {
        console.log(err)
    })
我的配置文件

这对我很有用:

卸载@azure/cosmos并使用2.1.7版npm install@azure重新安装它/cosmos@2.1.7-保存


感谢@kilmfer91

您无法使用Cosmos Node.js SDK访问MongoDB数据库。您需要使用Mongo客户端并传递可从Azure门户获得的正确端点。据我所知,您使用Azure Cosmos DB sql API,但无法连接。是这样吗?此外,您可以告诉我的版本吗您使用的SDK@azure/cosmos?
var config = {}

config.endpoint = "https://bluecosmosdb.documents.azure.com:443/";

config.key = "j2EFBfUe1GQpd5Sewv0LXUUluhrjdOuQ0w14JkJYSe4ISVkN9SBBPxq8wynW6bs7QCicbYsB6DaAfVd5Q1K6Nw==";


config.database = {
    id: 'blueSecures'
  }

  config.container = {
    containerMessages: 'messages'
  }

module.exports = config;