функция findOne не работает в этом коде

#api #authentication

#API #аутентификация

Вопрос:

У меня такая проблема, что findOne не работает, я не уверен, что я делаю неправильно:

 import express from 'express'
import path from 'path'
import mongoose from "mongoose"
import bodyParser from "body-parser";
import auth from "./auth";






const app=express()


app.use(bodyParser.json())

mongoose.connect('mongodb://localhost/shoppinglist',{useMongoClient:true})


app.use("/api/auth",auth)


  
 import express from "express";
import User from './User'


const router = express.Router();


router.post("/",function(req, res) {




        User.findOne({username: req.body.credentials.username},(user)=>{
            if (!user) {
                  res.status(400).json({ errors: { global: "really???!!!" } });
            }})




  });
  export default router;
  
 import mongoose from "mongoose";

const schema = new mongoose.Schema(
{
   username:String,

}   

  );

  module.exports = mongoose.model("User", schema);
  

есть предложения? код выбирает req.body.username, но findOne не проверяет пользователя. Я предполагаю, что я делаю какую-то ошибку в User.js файл

Ответ №1:

Неверны параметры обратного вызова. Обратный вызов принимает два параметра: err и document. В вашем случае параметр err отсутствует, Попробуйте это.

 User.findOne({username: req.body.credentials.username}, (err, user) => {
  if (!user) {
    return res.status(400).json({ errors: { global: "really???!!!" } });
  } 
  return res.status(200).json({data: user});
});