안녕하세요, 제 코드를 살펴볼 수 있습니까? 나는 자바 스크립트에 대한 나의 이해를 높이기 위해 사이드 프로젝트로 구축하고있는 백 엔드에서 인증을 구현 중이다.처리가 어렵습니다. 자바 스크립트로 약속하기
몽구스 검색의 약속이 정의되지 않은 이유는 확실하지 않습니다.
두 가지 기능이 있습니다. 하나는 제어기로 전달되는 도움말 기능입니다.
import db from '../models';
import bcrypt from 'bcrypt';
import validateLogin from '../validations/login';
import isEmpty from 'lodash/isEmpty';
const loginController = {};
loginController.login = function(req,res){
validateLogin(req.body).then(({isValid, errors }) => {
// isValid is undefined here
// This is the problem
if(isValid){
// give token
res.status(200).json({
success: true,
token: 'here is your token'
});
} else {
res.status(401).json({
errors
});
}
}).catch(err =>{
console.log(err)
});
};
export default loginController;
다른 헬퍼 기능이 유효한지 응답을 리턴하는지에 따라 토큰을 issuse 것이다 제어기 기능 자체이다. return
는 bcrypt
전화 누락처럼
import validator from 'validator';
import db from '../models';
import isEmpty from 'lodash/isEmpty';
import bcrypt from 'bcrypt';
function validateLogin(data){
const { userInput, password } = data;
const errors = {};
if(validator.isEmpty(userInput)){
errors.userInput = 'username is required';
}
if(validator.isEmpty(password)){
errors.password = 'password is required';
}
return db.User.find({$or:[{ username: userInput }, { email: userInput }]}).then(existingUser =>{
if(existingUser.length > 0){
// User exists, check if password matches hash
const user = existingUser[0];
bcrypt.compare(password, user.password_digest).then(valid => {
if(!valid){
errors.password = 'Invalid Password';
}
console.log('from prmomise');
return {
isValid: isEmpty(errors),
errors
};
}).catch(err => console.log(err));
} else {
errors.userInput = 'username or email does not exist';
return {
isValid: isEmpty(errors),
errors
};
}
});
}
export default validateLogin
* 취급의 어려움 실제 생활에서도 약속드립니다 :-p – Rajesh
왜 downvotes입니까? – Nate
약속은 @Rajesh^_^ – Deep