res.json()给出了我们的结果

时间:2017-07-04 00:13:59

标签: javascript json node.js rest api

我从数据库中获取一些数据,当我得到那些数据时,我只想发送一些属性而不是整行。所以对于它我使用了来自underscoreJS的方法'pick'。但问题是,当我应用此方法并将对象传递给响应(res.status(200).json(obj.toJSON())时,而不是获取此对象,我收到错误消息。 这是我的代码。

这是auth.js =>在这里,我正在应用'pick'方法并发送它。

const bcrypt = require('bcryptjs');
const db = require('./db.js');
const _ = require('underscore');

    module.exports = function(body) {
      return new Promise((resolve, reject) => {
        db.users.findOne({where: { email: body.email}}).then((user) => {
          if (bcrypt.compareSync(body.password, user.get('hashed_password'))) {
            let publicDetails = user.toJSON();
            publicDetails = _.pick(publicDetails, 'id', 'email');
            resolve(publicDetails);
          } else {
            reject();
          }
        }).catch(() => {
          reject();
        });
      });
    }

在这个文件中,我称之为承诺。

 app.post('/users/login', (req, res) => {
      const body = _.pick(req.body, 'email', 'password');

      auth(body).then((user) => {
        res.status(200).json(user.toJSON());
      }).catch(()=>{
        res.status(401).send();
});

0 个答案:

没有答案