Пн goose: Create () не создает документ - PullRequest
0 голосов
/ 12 апреля 2020

Здравствуйте, это первый раз, когда я публикую вопрос.

Так что в основном я создаю API для управления автомобилем (я делаю это как тренинг для лучшего построения API). Мое подключение к D осуществляется с помощью одноэлементного вызова, который вызывается сервером один раз, а обещания mon go являются глобальными (и пока работает нормально)
У меня есть модель:

import mongoose, {Schema} from "mongoose";
import mongooseUniqueValidator from "mongoose-unique-validator"; 

class Voiture{
    initSchema(){
        const schema = new Schema({
            Marque:{
                type: String,
                require:true,
            },
            Modele:{
                type: String,
                require:true,
            },
            Année:{
                type: Number,
                require:true,
            },
            Energie:{
                type: String,
                require:true,
            },
            Boite_De_Vitesse:{
                type: String,
                require:true,
            },
            couleur_exterieure:{
                type: String,
                require:true,
            },
            couleur_intérieur:{
                type: String,
            },
            nombre_De_Portes:{
                type:  Number,
            },
            nombre_De_Places:{
                type: Number,
            },
            Prix:{
                type: Number,
            },
            Etat:{
                type: String,
                require: true,
            },      
            Kilométrage:{
                type: Number,
            },
            prix_location:{
                type: Number,
                require:true,
            } 
            },{timestamp: true});
            schema.plugin(mongooseUniqueValidator);
            mongoose.model("voitures", schema);    
    }
    getInstance() {
        this.initSchema();
        return mongoose.model("voitures");
      }
}

export default Voiture;

и у меня также есть сервисы и контроллеры, к ним я могу получить все документы в базе данных mongoDB, но не могу создать документы

Вот мой сервис

import voiture from "../models/Voiture"
import mongoose from "mongoose"

class VoitureService{
    constructor(){
        this.model = new voiture().getInstance();
        this.getAll = this.getAll.bind(this);
        this.insert = this.insert.bind(this);
    }

    /**
     * GET All voiture
     */
    async getAll(query){
        let {skip, limit} = query;
        skip = skip ? Number : 0;
        limit =  limit ? Number : 10;

        delete query.skip;
        delete query.limit;

        if(query._id){
            try {
                query._id = new mongoose.mongo.ObjetId(uery._id);
            } catch (error) {
                console.log("not able to generate mongoose id with content", query._id);  
            }
        }

        try {
            let items = await this.model
            .find(query)
            .skip(skip)
            .limit(limit)
        let total = await this.model.countDocuments();
        return {
            error: false,
            statusCode: 200,
            data: items,
            total
          };
        } catch (errors) {
            return {
                error: true,
                statusCode: 500,
                errors
            };
        }
    }



    /**
     * Insert a car in the Database
     */

    async insert(data){
        console.log("line 60");
       try {
           console.log("line 62");
           let item = await this.model.create(data, function (err) {
               console.log("line 64");
               if (err) return handleError(err);
               // saved!
               console.log("line 67");
             });
           if (item){
               console.log("line 70");
             return {
               error: false,
               item
             };
             }
         } catch (error) {
           console.log("error", error);
           return {
             error: true,
             statusCode: 500,
             message: error.message || "Not able to create item",
             errors: error.errors
           };
         }
       }
}

И это мой контроллер

 async addCar(req, res){
        let response = await this.service.insert(req.body)
        if (res.error) return res.status(res.statusCode).send(response);
        return res.status(201).send(response);
      }

Я пытался зарегистрировать Предмет, но он дает мне undefined

Спасибо всем вам!

Салайна

1 Ответ

0 голосов
/ 12 апреля 2020

Вы можете следовать этому коду

// At Frist, You import **Voiture** Model Then use the model
async insert(data){
         console.log("line 60");
        try {
            console.log("line 62");
            let item = await Voiture.create(data, function (err) {
                console.log("line 64");
                if (err) return handleError(err);
                // saved!
                console.log("line 67");
              });
            if (item){
                console.log("line 70");
              return {
                error: false,
                item
              };
              }
          } catch (error) {
            console.log("error", error);
            return {
              error: true,
              statusCode: 500,
              message: error.message || "Not able to create item",
              errors: error.errors
            };
          }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...