Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Bookshelf.js-如何获取';隐藏的';仅用于一个查询的字段?_Javascript_Arrays_Node.js_Knex.js_Bookshelf.js - Fatal编程技术网

Javascript Bookshelf.js-如何获取';隐藏的';仅用于一个查询的字段?

Javascript Bookshelf.js-如何获取';隐藏的';仅用于一个查询的字段?,javascript,arrays,node.js,knex.js,bookshelf.js,Javascript,Arrays,Node.js,Knex.js,Bookshelf.js,我有以下书架型号: Bookshelf.model.extend({ tableName: 'users', hidden: ['password'] }, { async getBy(filter) { return await this.query({where: filter}).fetch(); } }) 如您所见,字段password是隐藏的(因为我通常不希望显示它)。 但是,我需要它来连接我的用户(在进行哈希比较时): 有没有一种方法可以简化可见性插件并获

我有以下书架型号:

Bookshelf.model.extend({
  tableName: 'users',
  hidden: ['password']
}, { 
  async getBy(filter) {
    return await this.query({where: filter}).fetch();
  }
})
如您所见,字段
password
是隐藏的(因为我通常不希望显示它)。
但是,我需要它来连接我的用户(在进行哈希比较时):

有没有一种方法可以简化可见性插件并获取密码,而不必直接使用
knex
Bookshelf.knex.raw()


致以最诚挚的问候,

好的,既然我找到了解决方案,我将回答我自己的问题,我希望它能帮助一些人:

14天前(2017年6月30日),该问题已被合并

它提供以下功能:

增加了使用直接指定给toJSON的选项覆盖锻造期间指定的选项的能力

是提交,测试显示它是如何工作的

就我的情况而言,我采取以下措施:

constuser=(wait userModel.getBy({email:req.body.email})).toJSON({hidden:[]})

hidden
是一个空数组,因此它会覆盖以前的隐藏属性(
hidden:['password']
),并获取要显示的密码

const user = await userModel.getBy({email: req.body.email});
if (await bcrypt.compare(req.body.password, user.password)) { 
  // here user.password is undefined because it is hidden
}