Вызов статики у мангусты.Схема от другого мангуста.Схема - PullRequest
0 голосов
/ 21 февраля 2019

Я использую схему mongoose, у меня есть два файла js;

first.js:

 const mongoose = require('mongoose')

    var FirstSchema= new mongoose.Schema({

        F1: {
            type: Boolean,
            default: null
        },
        F2: {
            type: Boolean,
            default: null
        }
    })


    FirstSchema.statics.add_to = function (_param) {
           //DO SOMETHING
    }

    var First = mongoose.model('First', FirstSchema )

    module.exports = {
        First
    }

socound.js:

 const mongoose = require('mongoose')
 var { First } = require('../func/first.js')

 var SocoundSchema = new mongoose.Schema({

    S1: {
        type: Boolean,
        default: null
    },
    S2: {
        type: Boolean,
        default: null
    }
})


 SocoundSchema.statics.add_other = function (_param) {

        return new Promise((resolve, reject) => {

            return First.add_to(_param).then((Result) => {
                return resolve(Result);
            }, (err) => {
                return reject(err);
            })

         })
}

var socound = mongoose.model('socound', SocoundSchema )

module.exports = {
    socound 
}

Когда я звонюВо-первых, add_to, это не работает.

Я тестировал разные коды и методы, но не смог ...

Как я могу использовать статику в mongooseSchema в другой mongooseSchema?Есть ли у него решение?

1 Ответ

0 голосов
/ 21 февраля 2019

В socound.js есть проблема в вашей функции .add_other (отсутствуют круглые скобки):

SocoundSchema.statics.add_other = function (_param) {

    return new Promise((resolve, reject) => {

        return First.add_to(_param)
        .then((Result) => {
            return resolve(Result);
        }, (err) => {
            return reject(err);
        })

     })
}

, и вы используете .then при вызове First.addd_to (), поэтому она должна бытьОбещаю, я только что добавил асинхронный код

First.js:

FirstSchema.statics.add_to = async function (_param) {
       //DO SOMETHING
       console.log('ayy');
       return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...