我使用猫鼬模式,我有两个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
}
当我呼叫First.add_to时,它不起作用。
我测试了不同的代码和方法,但失败了...
如何在另一个mongooseSchema中的mongooseSchema中使用静态?有解决方案吗?
答案 0 :(得分:0)
在socound.js中,您的.add_other函数出现问题(缺少括号):
Ph
并且您在调用First.addd_to()时使用.then,所以它应该是一个Promise,我只是在代码中添加了异步操作
First.js:
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);
})
})
}