Сервисы node js rest с использованием mongoclinet

Я младший разработчик и разрабатываю службу REST с использованием Node JS, Express, MongoDB в Azure. В моем первом сервисе для отдыха я всегда разрабатывал с использованием Mongoose, но теперь я заметил, что есть некоторые проблемы с использованием mongoose в Cosmos DB. Подключение к Cosmos DB Узел js работает с MongoDb mongoclient. Я создал файл db.js:

var mongoClient = require("mongodb").MongoClient;
mongoClient.connect("mongodb://dbname:xxxxxxxx@dbname.documents.azure.com:10255/?ssl=true", function (err, db) {
db.close();
});

module.exports = mongoClient;

и я определил модель:

var mongoClient = require('../config/db.js');


var ProfileSchema = mongoClient.Schema({
companyName: { type: String, required: true },
firstname: {type: String, required: true},
address: {type: String, required: true},
city: {type: String, required: true},
state: {type: String, required: false},
postalcode: {type: String, required: true},
country: {type: String, required: true},
telephone: {type: String, required: true},
email: {type: String, required: true}
});
mongoClient.model('Profile', ProfileSchema);

module.exports = mongoClient.model('Profile');

объявление это мой роутер:

var Profile = require('../models/Profile');


router.get('/profile', function(req,res){
Profile.find({}, (err, profile) => {
    if (err) {
        console.log(err);
        return res.status(400).send({ status: 'ko', data: {msg: err.message }});
    }
    res.status(200).send({status: 'ok', data: {msg: 'List', profile: profile}});
});
});

Теперь, когда я пытался запустить приложение, я получаю эту ошибку: mongoClient.Schema не является функцией Я не знаю, в порядке ли мой код? Как я могу исправить?

Спасибо Лучший

0
0
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, вы смешиваете концепции. Вы пытаетесь создать схему MongoDB с помощью MongoClient, который этого не поддерживает. Для этого используйте Mongoose: https://mongoosejs.com/docs/guide.html

MongoClient - это базовый драйвер для MongoDB, и я не думаю, что вы хотите использовать его напрямую.

Кроме того, в вашем файле модели вы используете это:

var mongoClient = require('../config/db.js');

и я не знаю, что у вас есть в файле db.js, но я не думаю, что вы реализовали там специальную функцию Schema (), поэтому вы получаете сообщение об ошибке «mongoClient.Schema не является функцией». Чтобы это работало, избегайте использования MongoClient напрямую и ознакомьтесь с некоторыми руководствами по Mongoose.

Другие вопросы по теме