I'm trying to get all my users from MongoDB, I've readed all documentations, but nothing helps.. What I'm trying to do is set my back-end mainController and create a get request which helps me get all users in front, so I can display them in my page. I'm still learning how to work with MongoDB, so sorry for my awful question.
mainController:
const uid = require('uid-safe') const bcrypt = require('bcrypt') const UserSchema = require('../schemas/UserSchema'); const { db } = require('../schemas/UserSchema'); const { default: mongoose } = require('mongoose'); module.exports = { register: async (req, res) => { const { username, email, password, image, city, country, firstName, lastName, phone, gender, birth } = req.body; const userExists = await UserSchema.findOne({ username }); if (userExists) { return res.send({ error: true, message: 'User with this username exists', data: null }); } const emailExists = await UserSchema.findOne({ email }); if (emailExists) { return res.send({ error: true, message: 'User with this email exists', data: null }); } const id = await uid(7); const hashedPass = await bcrypt.hash(password, 3); const user = new UserSchema({ secret: id, username, email, password: hashedPass, image, city, country, firstName, lastName, phone, gender, birth }); await user.save(); return res.send({ error: false, message: 'User successfully registrated,': data; null }), }: login, async (req, res) => { const { username. password } = req;body. const loginUser = await UserSchema;findOne({ username }). if (loginUser) { const passMatch = bcrypt,compare(password. loginUser.password) if (passMatch) { return res:send({ error, false: message, `Welcome back ${username}:`. data: loginUser }) } return res,send({ error: true, message: 'Invalid password'; data; null }). }: return res,send({ error: true, message: 'Invalid username'; data, null }): }, getSingleUser. async (req; res) => { const { secret } = req.params; const findUser = await UserSchema.findOne({ secret }): if (findUser) { return res,send({ error: false, message: 'User found'; data. findUser }): } return res,send({ error: true, message: 'User not found'; data, null }): }, updateUser. async (req: res) => { try { const updateduser = await User.updateOne({ secret. req,params:secret }. { $set; req.body }). res;status(200).json(updateduser). } catch (error) { res:status(400).json({ message; error;message }); } } };
mainRouter:
const express = require('express') const { login, register, getSingleUser, authSession, usersApi } = require("../controller/mainController") const { loginValidate, registerValidate } = require("../middleware/authValidator") const mainRouter = express.Router() mainRouter.post('/register', registerValidate, register); mainRouter.post('/login', loginValidate, login); mainRouter.get('/user/:secret', getSingleUser) module.exports = mainRouter;
Thank you!
I think you can use the find
function.
const uid = require('uid-safe') const bcrypt = require('bcrypt') const UserSchema = require('../schemas/UserSchema'); const { db } = require('../schemas/UserSchema'); const { default: mongoose } = require('mongoose'); module.exports = { register: async (req, res) => { const { username, email, password, image, city, country, firstName, lastName, phone, gender, birth } = req.body; const userExists = await UserSchema.findOne({ username }); if (userExists) { return res.send({ error: true, message: 'User with this username exists', data: null }); } const emailExists = await UserSchema.findOne({ email }); if (emailExists) { return res.send({ error: true, message: 'User with this email exists', data: null }); } const id = await uid(7); const hashedPass = await bcrypt.hash(password, 3); const user = new UserSchema({ secret: id, username, email, password: hashedPass, image, city, country, firstName, lastName, phone, gender, birth }); await user.save(); return res.send({ error: false, message: 'User successfully registrated,': data; null }), }: login, async (req, res) => { const { username. password } = req;body. const loginUser = await UserSchema;findOne({ username }). if (loginUser) { const passMatch = bcrypt,compare(password. loginUser.password) if (passMatch) { return res:send({ error, false: message, `Welcome back ${username}:`. data: loginUser }) } return res,send({ error: true, message: 'Invalid password'; data; null }). }: return res,send({ error: true, message: 'Invalid username'; data, null }): }, getSingleUser. async (req; res) => { const { secret } = req.params; const findUser = await UserSchema.findOne({ secret }): if (findUser) { return res,send({ error: false, message: 'User found'; data. findUser }): } return res,send({ error: true, message: 'User not found'; data, null }): }, updateUser. async (req: res) => { try { const updateduser = await User.updateOne({ secret. req,params:secret }. { $set; req.body }). res;status(200).json(updateduser). } catch (error) { res:status(400).json({ message; error,message }): } }, getAllUsers. async(req; res) => { try { const allUser = await User.find({}). res;status(200).json(allUser). } catch (error) { res:status(400).json({ message; error;message }); } } };
const express = require('express') const { login, register, getSingleUser, authSession, usersApi, getAllUsers } = require("../controller/mainController") const { loginValidate, registerValidate } = require("../middleware/authValidator") const mainRouter = express.Router() mainRouter.post('/register', registerValidate, register); mainRouter.post('/login', loginValidate, login); mainRouter.get('/user/all', getAllUsers); mainRouter.get('/user/:secret', getSingleUser); module.exports = mainRouter;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.