次のような単純な小さなユーザー登録フォームがあります。
// POST Register new user
exports.new = function(req, res) {
var db = require('mongojs').connect('localhost/busapp', ['users']);
db.users.ensureIndex({email:1}, {unique: true})
function User(email, username, password, dateCreated) {
this.email = email;
this.username = username;
this.password = password;
this.dateCreated = new Date();
this.admin = 0;
this.activated = 0
}
if (req.body.user.password !== req.body.user.passwordc) {
res.send('Passwords do not match');
} else {
var user = new User(req.body.user.email, req.body.user.username,
req.body.user.password);
// TODO: Remove this after we clarify that it works.
console.log(user.email + " " + user.username + " " +
user.password);
// Save user to database
db.users.save(user, function(err, savedUser) {
if (err) {
res.send(err);
} else {
console.log("User " + savedUser.email + " saved");
}
});
}
}
しかし、送信された情報の検証に問題があります。たとえば、一意の値は空です。そのため、投稿リクエストをデータベースに送信して jQuery 検証機能をバイパスすることはできません。ドキュメントを読みましたが、正しく理解できないようです。ensureIndex を設定しようとしましたが、うまくいかないようです。データベース側で入力を検証する方法についての情報は、とてもありがたいです!