Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.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
Node.js 如何在Nodejs Sequelize模型查询中设置if条件_Node.js_Sequelize.js - Fatal编程技术网

Node.js 如何在Nodejs Sequelize模型查询中设置if条件

Node.js 如何在Nodejs Sequelize模型查询中设置if条件,node.js,sequelize.js,Node.js,Sequelize.js,我正在尝试使用模型在Nodejs Sequelize查询中使用if条件 如果有过滤参数,我想通过过滤参数选择用户。如果没有,我想选择所有用户。 我是按以下方式做的,但我硬编码了: var filterData={id:{$ne:null} 使用Sequelize有没有合适的方法?谢谢 函数getData(id,过滤器=“”){ var filterData={id:{$ne:null}; 如果(过滤器!=''){ 过滤器数据={ $or:[ {firstName:{$like:'%1!'+fi

我正在尝试使用模型在Nodejs Sequelize查询中使用if条件

如果有过滤参数,我想通过过滤参数选择用户。如果没有,我想选择所有用户。 我是按以下方式做的,但我硬编码了:

var filterData={id:{$ne:null}

使用Sequelize有没有合适的方法?谢谢

函数getData(id,过滤器=“”){ var filterData={id:{$ne:null}; 如果(过滤器!=''){ 过滤器数据={ $or:[ {firstName:{$like:'%1!'+filter+'%}, {lastName:{$like:'%1!'+过滤器+'%'} ] }; } 返回模型['Profile'].findAll({ 其中:{profileId:id}, 包括:[{ 模型:models.Profile.scope('essentials'), 其中:filterData, 作为:“实体” }] })
}
我假设您尝试了
var filterData={}
var filterData=true
但没有成功?如果是这样,另一种选择是预先构建include对象,然后有条件地向其中添加where子句:

function getData(id, filter='') {
  var includeObj = {
    model: models.Profile.scope('essentials'),
    as: 'entity'
  }

  if (filter !== '') {
    includeObj.where = {
      $or: [
        {firstName: {$like: '%' + filter + '%'}},
        {lastName: {$like: '%' + filter + '%'}}
      ]
    };
  }

  return models['Profile'].findAll({
    where: { profileId: id },
    include: [includeObj]
  })
}
这避免了尴尬的“whereid不等于null”条件

还有一个小提示(也许您已经知道这一点,只是更喜欢更显式的代码),但是由于空字符串在javascript中是错误的

if (filter !== '') {
可以替换为

if (filter) {

谢谢,我试过使用空对象和空字符串,但我没有想过这种方法。关于这个
if(filter!='')
我已经试过了:
if(filter)
,但是没有用。