使用POST

时间:2018-11-26 05:01:57

标签: node.js express

我想完成什么?

->我已经执行了登录查询,如果登录查询为true,则发送特定用户的角色。因此,我正在执行2个查询,其中1个用于验证,另一个用于发送用户角色。我能够将角色存储在对象中,但无法将该对象发送到Angular。我尝试使用res.json(obj (['key'])),res.end(JSON.stringify(obj ['Key']));;他们都没有工作。 还有其他方法吗?

代码:

var Role_id = {
  Role: ''
};

router.post('/login', function(req, httpres, next) {
      console.log("Inside the login api");
      const username = req.body.username;
      const password = req.body.password;
      console.log(username, password)
      pool.query(" select exists(SELECT username FROM users WHERE username = $1 AND password = $2 ) ", [username, password])
        .subscribe(
          data => {
            console.log('success', data)
            if (data.rows[0].exists) {
              httpres.json({
                status: true,
                message: 'Login  Succesfully',
                parameters: req.body
              });
              var re = ("SELECT role_id from users where username ='" + username + "'  AND  password = '" + password + "'")
              console.log(" re ", re)
              pool.query("SELECT role_id from users where username ='" + username + "' AND  password = '" + password + "'")
                .subscribe(
                  data => {
                    console.log("data anonymous...", data.rows[0].role_id)
                    Role_id['Role'] = data.rows[0].role_id;
                    console.log("This data has to be read", Role_id['Role']);
                    //  httpres(JSON.stringify(Role_id['Role']));
                    // httpres.json(Role_id['Role']);
                    httpres.send(Role_id['Role']);
                    //    httpres.json({
                    //     parameters:req.Role_id['Role']
                    //   });
                  }, err => {
                    httpres.send('error');
                  }
                }
              else {
                httpres.send('error');
              }

            }, err => {
              console.log('error', err)
              httpres.send('error');
            })
        });

1 个答案:

答案 0 :(得分:0)

我认为问题是您尝试发送两次响应,但这是不可能的。您只能发送一个回复。可能是您收到此代码的响应: httpres。

json({
   status: true,
   message: 'Login  Succesfully',
   parameters: req.body
});

,但不包括下一个代码。因此,如果您需要发送响应中的所有信息,则应将其添加到一个对象中,并在最后发送整个对象。其他情况将无法正常工作。

让我知道是否有帮助。