-1
私はLaravelから来るNodeJSを学んでいます。私は、Feathersジェネレータが提供するフックでユーザー登録の基本的な検証をセットアップしました。メールアドレスが存在するかどうかを確認するにはどうすればよいですか?
ユーザサービスを使用して、電子メールアドレスがすでにDBに存在するかどうかを確認するにはどうすればよいですか?私はサービスのデータベースとしてMongoDBを使用しています。
const {authenticate} = require('@feathersjs/authentication').hooks;
const validator = require('validator');
const {
hashPassword, protect
} = require('@feathersjs/authentication-local').hooks;
module.exports = {
before: {
all: [],
find: [authenticate('jwt')],
get: [authenticate('jwt')],
create: [hashPassword(),
function(context) {
let input = context.data;
const userService = app.service('users');
if (validator.isEmpty(input.name)) {
throw new Error('Please enter your name.');
}
if (validator.isEmpty(input.email)) {
throw new Error('Please enter your email address.');
} else if (!validator.isEmail(input.email)) {
throw new Error('Please enter a valid email address.');
}
if (validator.isEmpty(input.password)) {
throw new Error('Please enter a password for your account.');
}
userService.find({
query: {
email: input.email
}
}).then((users) => {
console.log(users);
})
}
],
update: [hashPassword(), authenticate('jwt')],
patch: [hashPassword(), authenticate('jwt')],
remove: [authenticate('jwt')]
},
after: {
all: [
// Make sure the password field is never sent to the client
// Always must be the last hook
protect('password')
],
find: [],
get: [],
create: [],
update: [],
patch: [],
remove: []
},
error: {
all: [],
find: [],
get: [],
create: [
],
update: [],
patch: [],
remove: []
}
};