从另一个 mongoose.Schema 调用 mongoose.Schema 中的静态
Posted
技术标签:
【中文标题】从另一个 mongoose.Schema 调用 mongoose.Schema 中的静态【英文标题】:Call statics in mongoose.Schema from another mongoose.Schema 【发布时间】:2019-07-15 17:35:21 【问题描述】:我用的是 mongoose Schema,我有两个 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 中的静态?有解决办法吗?
【问题讨论】:
【参考方案1】:在 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);
)
)
你在调用 First.addd_to() 时使用 .then,所以它应该是一个 Promise,我只是在代码中添加了异步
First.js:
FirstSchema.statics.add_to = async function (_param)
//DO SOMETHING
console.log('ayy');
return true;
【讨论】:
我修复了 SocoundSchema 并将异步添加到 FirstSchema,但问题没有解决。 @M.ZF,它会抛出错误吗?如果可以,你能提供吗?以上是关于从另一个 mongoose.Schema 调用 mongoose.Schema 中的静态的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose 创建多个索引并个性化 quety 以使用特定索引调用
mongoose.Schema() 和 new mongoose.Schema() 有啥区别?
Mongoose 说我有 46 条记录,mongoDB 说我有 0 条记录?