Если вы на самом деле пытаетесь использовать один из обратных вызовов жизненного цикла, синтаксис будет выглядеть примерно так:
var uuid = require('uuid');
// api/models/MyUsers.js
module.exports = {
attributes: {
id: {
type: 'string',
primaryKey: true
}
},
beforeCreate: function(values, callback) {
// 'this' keyword points to the 'MyUsers' collection
// you can modify values that are saved to the database here
values.id = uuid.v4();
callback();
}
}
В противном случае, есть два типа методов, которые вы можете создать на модели:
- методы экземпляра
- методы сбора
Методы, помещенные внутри атрибутов объекта будет «экземпляр методы "(доступно на экземпляре модели). то есть:
// api/models/MyUsers.js
module.exports = {
attributes: {
id: {
type: 'string',
primaryKey: true
},
myInstanceMethod: function (callback) {
// 'this' keyword points to the instance of the model
callback();
}
}
}
это будет использоваться в качестве таковых:
MyUsers.findOneById(someId).exec(function (err, myUser) {
if (err) {
// handle error
return;
}
myUser.myInstanceMethod(function (err, result) {
if (err) {
// handle error
return;
}
// do something with `result`
});
}
Методы размещены вне атрибутов объекта, но внутри определения модели являются "методы сбора", то есть:
// api/models/MyUsers.js
module.exports = {
attributes: {
id: {
type: 'string',
primaryKey: true
}
},
myCollectionMethod: function (callback) {
// 'this' keyword points to the 'MyUsers' collection
callback();
}
}
в метод сбора будет использоваться следующим образом:
MyUsers.myCollectionMethod(function (err, result) {
if (err) {
// handle error
return;
}
// do something with `result`
});
P.S. комментарии о том, что такое ключевое слово this, предполагают, что вы используете методы обычным способом, т. е. вызываете их так, как я описал в своих примерах. Если вы вызываете их по-другому (т. Е. Сохраняете ссылку на метод и вызываете метод через ссылку), эти комментарии могут быть неточными.
Не могли бы вы пояснить немного больше, что вы пытаетесь сделать? Три перечисленных вами метода - это обратные вызовы, которые можно добавить в класс модели. – sgress454