【发布时间】:2020-06-19 22:20:59
【问题描述】:
目前,我可以从我的 html 中获取表单数据,但事后并未触发该操作。我正在尝试注册用户,但我的注册操作文件永远无法访问。单击提交后,我没有收到任何错误,但也没有创建新用户。 任何帮助表示赞赏。谢谢:)
注册.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>
路线
`"POST /signup": {action: 'signup'}`
云设置
`"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;
}`
【问题讨论】:
标签: javascript node.js routes sails.js action