1

这是我做的,我想得到两个节点之间的关系,即用户节点和其他节点。这里用户节点有两种关系(用户) - [:knows] ->(其他)和(用户) - [:friendrequest] ->(其他)

我想做以下事情:

  1. 在视图中显示添加朋友按钮,以防用户与其他人之间不存在任何关系,
  2. 如果用户和其他人之间存在好友请求关系,则显示发送的好友请求
  3. 如果知道用户和其他人之间存在关系,则已经是朋友状态

.实际代码是这样的。

      User.checkRelationship = function (user, fid, callback) {

  var uids = [user.uid, fid];
  async.map(uids, User.by_uid, function (err, usernodes) {
    if (!err && usernodes && usernodes.length) {
      User.relsCheck(usernodes, function (err, rels) {
        if (!err && rels) {
          console.log('relationship ' + JSON.stringify(rels.data()));
          callback(null, rels);
        } else {
          callback(err || new Error('friend request exists'));
        }
      });
    } else {
      callback(err || new Error('Unable to fetch user nodes: ' + uids.join(',')));
    }
  });
};



  User.relsCheck = function (nodes, callback) {
  if (nodes.length !== 2) {
    return callback(new Error('Invalid/insufficient arguments'));
  }
  var query = [
  'START user=node({userId}), other=node({otherId})',
  'MATCH (user) -[rels?:RELTYPE]-> (other)',
  'RETURN rels'
   ].join('\n');


   var params = {
       userId: nodes[0].node().id,
       otherId: nodes[1].node().id,
    };

    db.query(query, params, callback);
    };

查询和回调有问题请大家帮忙,谢谢!

4

0 回答 0