Blog JS - Edit User Registration
Здравейте,
ако може някой да помогне...
в часта Edit User Registration като опитам да регистрирам юзер , ми дава съобщение за грешка - User with the same username exists!, въпреки че юзера си е съвсем нов и се добавя в базата данни.
Освен това в сторма ми излиза грешка:
"C:\Program Files (x86)\JetBrains\WebStorm 2016.3.3\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" C:\Softmodul\JS\SoftUniBlogSkeleton\SoftUniBlog\bin\www
MongoDB ready!
(node:10352) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'push' of undefined
(node:10352) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Кода го проверявах ред по ред и не мога да открия грешка.
Ето :
registerPost:(req, res) => { let registerArgs = req.body; User.findOne({email: registerArgs.email}).then(user => { let errorMsg = ''; if (user) { errorMsg = 'User with the same username exists!'; } else if (registerArgs.password !== registerArgs.repeatedPassword) { errorMsg = 'Passwords do not match!' } if (errorMsg) { registerArgs.error = errorMsg; res.render('user/register', registerArgs) } else { let salt = encryption.generateSalt(); let passwordHash = encryption.hashPassword(registerArgs.password, salt); let roles = []; let userObject = { email: registerArgs.email, passwordHash: passwordHash, fullName: registerArgs.fullName, salt: salt, roles: roles }; Role.findOne({name: 'User'}).then(role => { roles.push(role.id); User.create(userObject).then(user => { role.users.push(user.id); role.save(err => { if (err) { registerArgs.error = err.message; res.render('user/register', registerArgs); } else { req.logIn(user, (err) => { if (err) { registerArgs.error = err.message; res.render('user/register', registerArgs); return; } res.redirect('/'); }) } }); }) }); } }) },
Благодаря за помоща, но все още не мога да оправя проблема. Все още ми изкарва грешка въпреки че console.log(user) връща null. Според мен вместо да ме логне, ми прави нова проверка дали юзера е регистриран, но защо ... нямам никаква идея :)
Първите два реда в /config/database.js са си ок.
null
null
(node:8068) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'push' of undefined
(node:8068) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
При нова проверка с console.log(user),
поставих го и тук:
MongoDB ready!
null
(node:13344) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'push' of undefined
(node:13344) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
{ _id: 58e69d8ae78f8b3420dd5dc2,
email: 'em@em.bg',
passwordHash: '6bbbec0a826e5c6823119e8cf9f2232c8f3dfcca8236c908fb24c5e3efa912a7',
fullName: 'sma',
salt: 'TAfvdiWlBhK3j75lA2NCzwI02ZPhWLXvfviWpeFs6bExMTqOSGU1b9b3zHSO7wz8hf/cSwEjzRoFTE1lQzmd5ptihBQRPoTKpXhDjIbrZ1A0siQJv8Q3+iGTJ52Iq7Jv0vlrs429D55Gykq9sgTFI6ohE6dcoAE0afyfM/BMxwY=',
__v: 0,
roles: [ 58e555bc70aa661d383477cb ],
articles: [] }
Здравей.
И в базата няма потребител с e-mail em@em.bg ?
да не би да е хардкоднат някъде ?
след този ред сложи конзол логг-а
Всички юзери се създават без проблем в базата.
Въпросът е, че като дам Submit да се регистрира юзера, би трябвало като го създаде в базата да го логне, но вместо това, ми връща регистрационната форма със съобщение - този юзер вече съществува.
Ако логна юзера - работи, създавам му статии...функционира си :)
Проблема е, че не го логва веднага като го регистрирвам
Ако дадеш линк към проекта ти, ще го погледна :)
Ще съм ти много благодарна :) Довечера ще го кача в github и ще пусна линка...
Това е линка към проекта
https://github.com/SteisAndreeva/BlogJS
В models/Role в roleSchemata трябва да е users: [{type: mongoose.Schema.Types.ObjectId, ref: 'User'}] :)
Да, оправи се :)
Търсило си е масива за да push-не.
Много, много благодаря :)
No worries :)