#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});
});