Node.js Sequelize.js afterFind参数解释
我试图在一个模型上实现一个afterFind钩子,但我不太明白它的语义是什么。我将以文档和其他StackOverflow问题为指导,从反复试验中总结出以下内容 我的目标是按摩结果(通过应用get(plain:true))并将转换后的值作为承诺的结果传递。例如,我希望它返回一个空的结果集:Node.js Sequelize.js afterFind参数解释,node.js,hook,sequelize.js,Node.js,Hook,Sequelize.js,我试图在一个模型上实现一个afterFind钩子,但我不太明白它的语义是什么。我将以文档和其他StackOverflow问题为指导,从反复试验中总结出以下内容 我的目标是按摩结果(通过应用get(plain:true))并将转换后的值作为承诺的结果传递。例如,我希望它返回一个空的结果集: hooks: { afterFind: function(result, options, fn) { resul
hooks: {
afterFind: function(result, options, fn)
{
result = [];
}
},
但这只会导致请求挂起。文档说明这些参数是通过引用传递的,不包含返回值。其他样本暗示如下:
hooks: {
afterFind: function(result, options, fn)
{
result = [];
return fn(null, result);
}
},
这不会挂起,但不会改变我的结果集。更不用说,我不知道神奇的“fn”论点是什么。我也有类似的问题。这是因为在执行findAll时,传递给钩子的参数是一个值数组,而不是单个对象。我这样做是为了解决问题-
hooks: {
afterFind: function(result) {
if(result.constructor === Array) {
var arrayLength = result.length;
for (var i = 0; i < arrayLength; i++) {
result[i].logo = "works";
}
} else {
result.logo = "works";
}
return result;
}
}
挂钩:{
后发现:功能(结果){
if(result.constructor==数组){
var arrayLength=结果长度;
对于(变量i=0;i
在上面的代码中,我在找到记录后更改了记录的logo属性。也许可以查看一些单元测试是如何工作的?当在查询其他模型时包括应用了钩子的模型时,如何使其工作?