Я пытаюсь дать пользователю возможность зарегистрироваться на моем веб-сайте и сохранить учетные данные на mongodb.
Это мой файл auth.js, в котором определен маршрут:
router.post('/signup', (req,res,next) => {
Passport.authenticate('local-signup', err => {
if (err) {
if (err.name === "MongoError" && err.code === 11000) {
res.status(409).json({
success: false,
message: "Unsuccessful",
errors: {
email: "This email is already taken."
}
});
}
res.status(400).json({
success: false,
message: "Unsuccessful",
errors: {
unknown: "Could not process for some reason. Contact admin."
}
});
}
res.status(200).json({
success: true,
message: "Successful",
errors: {}
});
}) (res, req, next);
}
Эта последняя скобка немного испортилась, но поверьте, это не синтаксическая ошибка.В этом фрагменте я определил стратегию паспорта:
require ('../Models/Users')
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/onlinestore');
const User = mongoose.model('User');
const PassportLocalStrategy = require('passport-local').Strategy;
const Passport = require('passport');
module.exports = Passport.use(new PassportLocalStrategy({
usernameField: 'email',
passwordField: 'password',
session: false,
passReqToCallback: true,
}, (email, password, done) => {
let user = new User();
user.email = email.trim();
user.password = password.trim();
user.save(err => {
if (err) {
console.log(err);
return done(err);
} else {
console.log("Success");
return done(null);
}
});
}
));
Маршрут может получить введенный пользователем пароль и пользователя.Когда я нажимаю «отправить», буквально ничего не происходит;сервер ничего не утешает и не делает клиент.После небольшой отладки я думаю, что проблема связана с тем, что Passport.Authenticate не вызывается, но я не уверен, почему.При необходимости я могу опубликовать другие фрагменты кода, спасибо!