forwardemail / forwardemail/supertest
cannot set properties of undefined (setting 'statusCode') While register a user
- Dominant language
- JavaScript
- Stars
- 14.4k
- Forks
- 782
- PR merge metrics
- No merged PRs in 30d
Description
I am exeriencing the problem when I register the user, the user gets added to data base but along with that there comes the error.
`````node.js
require('dotenv').config();
const express = require('express');
const ejs = require('ejs');
const mongoose = require('mongoose');
const session = require('express-session');
const passport = require('passport');
const passportLocalMongoose = require('passport-local-mongoose');
const app = express();
app.set('view engine', 'ejs');
app.use(express.static('public'));
app.use(express.urlencoded({ extended: true }));
app.use(session({
secret: process.env.SECRET,
resave: false,
saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session());
mongoose.connect('mongodb://localhost:27017/UserDB');
const userSchema = new mongoose.Schema({
username: String,
password: String
});
userSchema.plugin(passportLocalMongoose);
const User = mongoose.model('User', userSchema);
passport.use(User.createStrategy());
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
app.get('/secrets', (req, res) => {
if (req.isAuthenticated()) {
res.render('secrets');
} else {
res.redirect('/login');
}
})
app.post('/register', (req, res) => {
User.register({ username: req.body.username }, req.body.password, (err, user) => {
if (err) {
console.log(err);
res.redirect('/register');
} else {
passport.authenticate('local')((req, res) => {
res.redirect('/secrets');
});
}
});
});
app.listen(process.env.PORT || 3000, () => {
console.log("Server is running on port 3000");
})
`````
This code is showing an error -
```
TypeError: Cannot set properties of undefined (setting 'statusCode')
at allFailed (E:\Web Dev\Authenication\node_modules\passport\lib\middleware\authenticate.js:170:22)
at attempt (E:\Web Dev\Authenication\node_modules\passport\lib\middleware\authenticate.js:183:28)
at Strategy.strategy.fail (E:\Web Dev\Authenication\node_modules\passport\lib\middleware\authenticate.js:305:9)
at Strategy.authenticate (E:\Web Dev\Authenication\node_modules\passport-local\lib\strategy.js:75:17)
at attempt (E:\Web Dev\Authenication\node_modules\passport\lib\middleware\authenticate.js:369:16)
at authenticate (E:\Web Dev\Authenication\node_modules\passport\lib\middleware\authenticate.js:370:7)
at E:\Web Dev\Authenication\app.js:103:43
at E:\Web Dev\Authenication\node_modules\passport-local-mongoose\index.js:247:30
at processTicksAndRejections (node:internal/process/task_queues:96:5)
```
I am using these versions:-
`
"dotenv": "^16.0.0",
"ejs": "^3.1.6",
"express": "^4.17.3",
"express-session": "^1.17.2",
"mongoose": "^6.2.6",
"passport": "^0.5.2",
"passport-local": "^1.0.0",
"passport-local-mongoose": "^7.0.0"
`
Contributor guide
Assessment
This issue has not been assessed yet.