цепные статические методы в мангусте не работают - PullRequest
0 голосов
/ 18 мая 2018

Я пробовал статические методы в es6, есть хоть какая-то подсказка, почему я не могу связать статический метод, как показано ниже?Можно ли даже связать 2 статических метода?

//nameModel.js
const schema = new mongoose.Schema({ name: String })
class NameClass {
  static async findAll() {
    return this.find({})
  }
}
schema.loadClass(NameClass)
export const model = initModel('NameSchema', schema)

//controller.js
import { model as NameModel } from '../models/nameModel'
export default () => async (req, res) {
  try {


const test = await NameModel.findAll()
    console.log('test', test) //have all the records

    const response = await NameModel.findAll().sort('-name') // NameMode.sort is not a function
  } catch (e) {
    console.log(e)
  }
}

Какая разница между статическим и нестатическим методом в схеме Мангуста?Я в замешательстве, так как документ показывает только пример кода.Я чувствовал, что это излишне, так как не показывает разницу между двумя http://mongoosejs.com/docs/advanced_schemas.html

1 Ответ

0 голосов
/ 18 мая 2018

this в статическом методе относится к самой функции класса, поскольку она определена как метод класса.

class NameClass {
  static async findAll() {
    return this.find({})
  }
}

равно:

class NameClass {}
NameClass.findAll = async function() {
  return this.find({})
}

см. MDN Классы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...