В настоящее время я могу получить данные формы из своего html, но действие не запускается постфактум. Я пытаюсь зарегистрировать пользователя, но мой файл действий по регистрации не достигаетс. После нажатия кнопки «Отправить» я не получаю ошибок, но и новый пользователь не создается. Любая помощь приветствуется. Спасибо :)
signup.ejs
<h2>Please Sign up.</h2>
<div class="container">
<div class="signup-form">
<ajax-form class="ajax-form" action="signup" :handle-parsing="handleParsingForm">
<div class="form-group">
<label for="username">Username</label>
<input class="form-control" id="username" type="text" :class="[formErrors.username
? 'is-invalid' : '']" v-model.trim="formData.username" placeholder="Sturgis P. Sturgeon"
autocomplete="name" focus-first>
<div class="invalid-feedback" v-if="formErrors.username">Please enter your full
name.</div>
</div>
<div class="form-group">
<label for="password">Choose a password</label>
<input class="form-control" id="password" type="password" :class=".
[formErrors.password ? 'is-invalid' : '']" v-model.trim="formData.password"
placeholder="••••••••" autocomplete="new-password">
<div class="invalid-feedback" v-if="formErrors.password">Please enter a password</div>
</div>
<div class="form-group">
<label for="confirm-password">Confirm password</label>
<input class="form-control" id="confirm-password" type="password" :class=".
[formErrors.confirmPassword ? 'is-invalid' : '']" v-model.trim="formData.confirmPassword"
placeholder="••••••••" autocomplete="new-password">
<div class="invalid-feedback" v-if="formErrors.confirmPassword">Your password
and confirmation do not match.</div>
</div>
<ajax-button type="submit" class="btn ajax-button" :class="[syncing ? 'syncing' :
'']">Submit</ajax-button>
</form>
</div>
</div>
</div>
Route
`"POST /signup": {action: 'signup'}`
Cloud Setup
`"signup":{
"verb":"POST","url":"/signup","args":["username","password"]
}`
handleParsingForm
`handleParsingForm: function() {
this.formErrors = {};
var argins = this.formData;
if(!argins.username) {
this.formErrors.username = true;
}
if(!argins.password) {
this.formErrors.password = true;
}
if(argins.password && argins.password !== argins.confirmPassword) {
this.formErrors.confirmPassword = true;
}
if (Object.keys(this.formErrors).length > 0) {
return;
}
return argins;
}
действие регистрации
`signup: async function (inputs) {
const { username, password, confirmPassword } = inputs;
try {
let existingUser = await User.findOne({
username
})
if (existingUser) {
throw(400, 'That username is already taken.')
}
} catch (error) {
throw(error);
}
finally {
if (password === confirmPassword) {
let newUser = {username, password}
bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(password1, salt, (err, hash) => {
newUser.password = hash;
User.create(newUser);
});
})
// };
};
// this.req.session.userId = newUser.id;
// return newUser;
}`