我正在嘗試創建一個注冊表單,其中潛在用戶正在輸入他們想要的用戶名,它會檢查現有的 Mongo DB 用戶模式以查看該確切名稱是否存在。
我的表格在這里:
<form class="needs-validation" action="/register" method="POST" novalidate>
<div >
<p >Welcome to the team! We just need a few things to get started.</p>
<div >
<div >
<div >
<input
type="text"
id="first_name"
name="first_name"
required
/>
<label for="first_name"
>First name</label
>
<div >Looks good!</div>
<div >Thats not right</div>
</div>
</div>
<div >
<div >
<input
type="text"
id="last-name"
name="last-name"
required
/>
<label for="last-name"
>Last name</label
>
<div >Looks good!</div>
<div >Thats not right</div>
</div>
</div>
</div>
<!-- Email input -->
<div >
<input
type="email"
id="register_email"
name="register_email"
required
/>
<label for="register_email">Email</label>
<div >Looks good!</div>
<div >Thats not right</div>
</div>
<div >
<div >
<input type="text" id="register_username" name="register_username" placeholder="enter your username" required />
<label for="register_username">Username</label>
<div id="username-check"></div>
</div>
<!-- Password input -->
<div >
<input type="password" id="register_password" name="register_password" required/>
<label for="register_password">Password</label>
</div>
</div>
<!-- Submit button -->
<div >
<button type="submit" id="register" disabled>
Lets Go! <i ></i>
</button>
</div>
</form>
我有這個腳本代碼在頁面上作業,以獲取用戶輸入并檢查應該檢查我的 MongoDB 的獲取路由:
$('#register_username').on('keyup', function () {
$.get('/usercheck?username=' $(this).val().toLowerCase(), function (response) {
$('#username-check').text(response.message);
console.log('')
var btn = document.getElementById('register');
btn.disabled = true;
if ($('#username-check').html() === "user exists") {
$('#username-check').text('username not available').css('color', 'red');
}
else {
console.log($('#register_username').val())
$('#username-check').text('username is available').css('color', 'green');
btn.disabled = false;
}
})
});
這是它呼叫來檢查資料庫的路由:
var express = require("express"),
router = express.Router(),
passport = require("passport"),
User = require("../models/user");
router.get('/usercheck', function(req, res) {
console.log(req.query);
User.findOne({username: req.query.register_username}, function(err, username){
if(err) {
console.log(err);
}
var message;
if(username) {
console.log(username);
message = "user exists";
console.log(message);
} else {
message= "user doesn't exist";
console.log(message);
}
res.json({message: message});
});
});
module.exports = router;
如果這有幫助,這是資料庫中的用戶模式:
var mongoose = require("mongoose");
var passportLocalMongoose = require("passport-local-mongoose");
var UserSchema = new mongoose.Schema({
username: String,
password: String,
email: String,
isAdmin: { type: Boolean, default: false }
});
UserSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model("User",UserSchema);
我不確定我錯過了什么,但任何事情都會非常有幫助。提前致謝!
uj5u.com熱心網友回復:
就這樣可以成功關閉這個問題:更改/usercheck?username=為成功/usercheck?register_username=了,因為此查詢引數以以下形式使用:
$('#register_username').on('keyup', function () {
$.get('/usercheck?register_username=' $(this).val().toLowerCase(), function (response) {
$('#username-check').text(response.message);
console.log('')
var btn = document.getElementById('register');
btn.disabled = true;
if ($('#username-check').html() === "user exists") {
$('#username-check').text('username not available').css('color', 'red');
}
else {
console.log($('#register_username').val())
$('#username-check').text('username is available').css('color', 'green');
btn.disabled = false;
}
})
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/510362.html
下一篇:無法從db.query發送回應
