I am working with Nodejs,I am using Expressjs,Right now i am tring to run project,Connection established successfully but whenever i try to use url (localhost:3001/api/plans) then i am getting following error in console
MongoServerError: user is not allowed to do action [find] on [git_flow.plans]
And i am getting following error in my browser
success false
ok 0
code 8000
codeName "AtlasError"
Here is my "user-router.js" file
import express from 'express';
import * as UserCtrl from '../controllers/user-ctrl.js';
Const router = express.Router()
router.get('/github/auth/redirect', UserCtrl.redirectGithub)
router.post('/users', UserCtrl.createUser)
router.put('/user/:id', UserCtrl.updateUser)
export default router
Here is my controller file (user-ctrl.js) file code
export const redirectGithub = async (req, res) => {
let code = req.query.code;
console.log(req.query.code);
if(!code) {
return res.send({
success: false,
message: 'Error: no code'
})
}
User.findOne({ githubAuthing: true }, (err, user) => {
if (err) {
return res.status(400).json({ success: false, error: err })
}
user.githubAuthing = false;
user.code = code;
console.log(user.redirect_uri);
user
.save()
.then(() => {
res.redirect(user.redirect_uri);
})
}).clone().catch(err => console.log(err))
}
H
ere is my model file,Where i am wrong ?
import mongoose from 'mongoose';
const Schema = mongoose.Schema
const User = new Schema(
{
settings: { type: String, required: false },
plan: { type: mongoose.ObjectId, required: false },
introCompleted: { type: Number, required: false },
session_id: { type: mongoose.ObjectId, required: true },
githubToken: { type: String, required: false },
githubUser: { type: Object, required: false },
repo: { type: Object, required: false },
shop: { type: String, required: false },
githubAuthing: { type: Boolean, required: false },
code: { type: String, required: false },
redirect_uri: { type: String, required: false },
},
{ timestamps: true },
)
export default mongoose.model('users', User)