我正在嘗試使用 Mongoose 使用此代碼將 Cosmos DB 資料庫連接到我的 Node JS Web 應用程式
const express = require('express')
const path = require('path')
const bodyParser = require('body-parser')
const mongoose = require('mongoose')
const env = require('dotenv').config();
const User = require('./model/user')
mongoose
.connect(
'mongodb://'
process.env.COSMOSDB_HOST
':'
process.env.COSMOSDB_PORT
'/'
process.env.COSMOSDB_DBNAME
'?ssl=true&replicaSet=globaldb',
{
auth: {
username: process.env.COSMOSDB_USER,
password: process.env.COSMOSDB_PASSWORD,
},
useNewUrlParser: true,
useUnifiedTopology: true,
retryWrites: false,
},
)
.then(() => console.log('Connection to CosmosDB successful'))
.catch((err) => console.error('ERRORE: ' err));
const app = express()
app.use('/',express.static(path.join(__dirname,'public')))
app.use(bodyParser.json())
app.set("view engine", "ejs");
app.get("/", function (req, res) {
res.render('index')})
app.get("/signup", function (req, res) {
res.render('register')})
app.post('/register', async(req,res) =>{
console.log(req.body)
res.json({status:'ok'})
})
app.listen(9999,() =>{
console.log('Server up at 9999')
})
module.exports = app
但是在運行它時出現錯誤MongooseServerSelectionError: Invalid message size: 1347703880, max allowed: 67108864
我做錯了什么??
提前致謝
uj5u.com熱心網友回復:
你為什么用貓鼬?當您可以使用@azure/cosmos時,它應該可以正常作業。Mongoose 是 mongodb 的 ORM。
安裝 @azure/cosmos
npm install @azure/cosmos --save
然后設定配置:
const config = {
endpoint: "<Your Azure Cosmos account URI>",
key: "<Your Azure Cosmos account key>",
databaseId: "Tasks",
containerId: "Items",
partitionKey: { kind: "Hash", paths: ["/category"] }
};
module.exports = config;
獲取連接:
const config = require("../config");
const CosmosClient = require("@azure/cosmos").CosmosClient;
/*
// This script ensures that the database is setup and populated correctly
*/
async function create(client, databaseId, containerId) {
const partitionKey = config.partitionKey;
/**
* Create the database if it does not exist
*/
const { database } = await client.databases.createIfNotExists({
id: databaseId
});
console.log(`Created database:\n${database.id}\n`);
/**
* Create the container if it does not exist
*/
const { container } = await client
.database(databaseId)
.containers.createIfNotExists(
{ id: containerId, partitionKey },
{ offerThroughput: 400 }
);
console.log(`Created container:\n${container.id}\n`);
}
module.exports = { create };
創建連接:
const CosmosClient = require("@azure/cosmos").CosmosClient;
const config = require("./config");
const dbContext = require("./data/databaseContext");
const { endpoint, key, databaseId, containerId } = config;
const client = new CosmosClient({ endpoint, key });
const database = client.database(databaseId);
const container = database.container(containerId);
// Make sure Tasks database is already setup. If not, create it.
await dbContext.create(client, databaseId, containerId);
現在,您可以查詢資料庫或在其中創建專案。我建議你閱讀此文章中的所有步驟如果上述步驟不清晰。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/420752.html
標籤:
上一篇:如何填充嵌入檔案的欄位?
