0
Sequelize
をExpress
に統合する方法に関する私の学校のワークショップに従っています。私たちは私たちの中で、レバレッジhooks
に学習しているモデル、およびそれに私はこれで混乱していた部分があります:Sequelize(リターンとアタッチ)のフックを理解する
フックの実行を取り付け対返す
議論として与えられる。したがって、作成した urlTitleを 関数から返すのではなく、このページインスタンスに添付したいと考えています。
var Sequelize = require('sequelize');
var db = new Sequelize('postgres://localhost:5432/__wikistack__', {
logging: false,
});
const Page = db.define(
'page',
{
title: {
type: Sequelize.STRING,
},
urlTitle: {
type: Sequelize.STRING,
},
content: {
type: Sequelize.TEXT,
},
status: {
type: Sequelize.ENUM('open', 'closed'),
},
},
{
hooks: {
beforeValidate: function(page) {
if (page.title) {
// Removes all non-alphanumeric characters from title
// And make whitespace underscore
return (page.urlTitle = page.title.replace(/\s/g, '_').replace(/\W/g, ''));
} else {
// Generates random 5 letter string
return (urlTitle = Math.random()
.toString(36)
.substring(2, 7));
}
},
},
}
);
誰かがこれを説明することはできますか?どのようにフックの機能は何かを返すことはできませんか?上記のように動作するので、フック/関数は何かを返す。
ありがとうございます!