Проблема, чтобы соглашаться на элементы документа: mongoose

Я хочу сделать проверку пароля используя express и mongoose.

Все добро до части, где я проверяю пароль, просто я не могу соглашаться на эту стоимость моего документа.

Это моя функция:

function iniciar_sesion(req, res)
{
  let usu = new Usuario({
    usuario : req.body.usuario,
    password : req.body.password
  })

  Usuario.findOne( {usu_nombre: usu.usuario}, (err, user) => {

    // Comprobar si hay errores
    if (err) return res.status(500).send({message: `Error al realizar la petición: ${err}`})

    // Comprobar si el usuario existe
    if (!user) return res.status(404).send({message: `No existe el usuario `})

    // Comprobar si la contraseña es correcta

    console.log(user._id) // marca su valor
    console.log(user.usu_contrasenia) // marca undefined
    console.log(user.usu_nombre) // marca undefined
    console.log(user)

    if (user.usu_contrasenia != usu.password)
      return res.status(400).send({message: 'Contraseña incorrecta'})

    // Genero token
    res.status(200).send(user)

  })

}

Однако, когда я делаю console.log (user), напечатай весь документ:

{ _id: 586151481787e016382ee4b2,
  usu_nombre: 'John Doe',
  usu_contrasenia: '123' }

Он не был бы должен мочь соглашаться делая: user.usu_contrasenia????????

Любопытное состоит в том, что _id да он печатает это мне и да соответствует с тем DB.

Какая-то помощь?

Заметь: Пока я манипулирую без encriptar паролем, сначала он хотел сделать этот такой тест, но он не вытекает или. Или

0
задан 26.12.2016, 22:01
0 ответов

Уже я нашел решение. Без подсказок @HectorSeguro он этого не добился.

То, что он перемещает, состоит в том, что он пробовал согласиться на эту стоимость как признак, однако инспектируя всю стоимость объекта users с кодом, который предложил Эктор (for (var s in user) {console.log (s); }), я нашел метод _doc, который возвращает как таковой документ.

user._doc

Тогда я могу соглашаться на элементы следующей формы:

user._doc.usu_usuario
user._doc.usu_contrasenia

Тогда мой код остается:

'use strict'

const Usuario = require('../models/usuario.js')


function iniciar_sesion(req, res)
{
  let usu = new Usuario({
    usuario : req.body.usuario,
    password : req.body.password
  })

  Usuario.findOne( {usu_nombre: usu.usuario}, (err, user) => {

    // Comprobar si hay errores
    if (err) return res.status(500).send({message: `Error al realizar la petición: ${err}`})

    // Comprobar si el usuario existe
    if (!user) return res.status(404).send({message: `No existe el usuario `})

    console.log(user._doc.usu_usuario)
    console.log(user._doc.usu_contrasenia)

    if (user._doc.usu_contrasenia != usu.password)
      return res.status(400).send({message: 'Contraseña incorrecta'})

    // Genero token
    res.status(200).send(user)

  })

}

module.exports = ({
  iniciar_sesion
})

Большое спасибо Эктор снова: ')

1
ответ дан 03.12.2019, 17:58