Службы отдыха Node Js с использованием mongoclinet - PullRequest
0 голосов
/ 10 сентября 2018

Я младший разработчик и занимаюсь разработкой REST-сервиса с использованием Node JS, Express, MongoDB на Azure. В моем первом сервисе отдыха, который я разработал, я всегда разрабатывал с использованием Mongoose, но теперь я увидел, что есть некоторая проблема с использованием mongoose на Cosmos DB. Подключение к Космосу БД Node 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 не является функцией Я не знаю, если мой код в порядке? Как я могу это исправить?

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

1 Ответ

0 голосов
/ 10 сентября 2018

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

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

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

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

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

...