首页 > 解决方案 > 如何使用 nodejs 从 pouchdb 响应中访问值?

问题描述

我正在尝试使用从响应对象返回的值,poucdb-find但我无法获取这里的信息是我的代码

const username = req.body.username;
  const password = req.body.password;
  db.find({
    selector: { username: username },
    fields: ["_id", "username", "role", "status", "password"]
  })
    .then(function(user) {
      let doc = user.docs;
      // console.log(user.docs[username]);
      // console.log(doc["values"][1]["username"]);

      if (bcrypt.compareSync(password, user.docs.values.password)) {
        console.log("user found");
        var token = jwt.sign(
          { username: user.username, role: user.role },
          "my_secret",
          { expiresIn: 3600 }
        );
        res.status(200).json({
          message: "logged in",
          token: token
        });
      } else {
        res.status(401).json({
          message: "username or password is incorrect"
        });
      }
    })
    .catch(function(err) {
      res.status(403).json({
        message: "user not found",
        err: err
      });
    });

当我控制台记录变量时doc,响应是这样的

{ docs:
  [ { _id: '0eaaf77e-eae7-448e-becc-9e311cc3adaf',
    username: 'username2',
    role: 'sales',
    password:'...' 
} ]

我试图访问这样的用户名,,docs.username......但所有这些都导致......所以我怎样才能得到?谢谢!docs[username]docs[1]undefinedusername

标签: node.jspouchdb

解决方案


尝试做

let doc = user.docs[0];
console.log(doc.username);

推荐阅读