-1
저는 NodeJS가 Laravel에서 온 것을 배우고 있습니다. 깃털 생성기에서 제공하는 후크에 사용자 등록을위한 기본 유효성 검사를 설정했습니다.이메일 주소가 있는지 어떻게 확인하나요?
전자 메일 주소가 이미 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: []
}
};