post login model.findone() no longer accepts a callback
230
작성한 질문수 1
callback문법이 적용이 안되서 바꿔 성공했는데 좋은 코드인지는 모르겠습니다 참고 하실분은 참고해주세요
app.post("/api/users/login", async (req, res) => {
try {
// 같은 이메일의 유저가 있는지 확인
const user = await User.findOne({ email: req.body.email });
if (!user) {
return res.json({
loginSuccess: false,
message: "제공된 이메일에 해당하는 유저가 없습니다.",
});
}
// 비밀번호 확인
const isMatch = await user.comparePassword(req.body.password);
if (!isMatch) {
return res.json({
loginSuccess: false,
message: "비밀번호가 틀렸습니다.",
});
}
// 토큰 쿠키에 저장
const userdata = await user.generateToken();
// 토큰을 저장한다. 어디에? 쿠키, 로컬스토리지
res
.cookie("x_auth", userdata.token)
.status(200)
.json({ loginSuccess: true, userId: userdata._id });
} catch (err) {
return res.status(400).send(err);
}
});
userSchema.methods.comparePassword = function (plainPassword) {
// plainpassword와 db에 암호화된 비밀번호가 같은지 확인
const result = bcrypt.compare(plainPassword, this.password);
return result;
};
userSchema.methods.generateToken = async function (cb) {
var user = this;
// jsonwebtoken을 이용해서 token을 생성하기
var token = jwt.sign(user._id.toHexString(), "secretToken");
// user._id(db의 _id) + secreToken = token
// token으로 user를 판별할 수 있다.
// user.token = token;
user.token = token;
try {
const savedUser = await user.save();
return user;
} catch (err) {
return err;
}
};
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
조창욱 님께서 공유하신 코드는 Mongoose 버전 5.0 이상에서 findOne 메소드 사용 시 콜백 함수 대신 프로미스나 async/await 문법을 사용하여 문제를 해결한 좋은 예시입니다. 이와 유사한 질문에 대한 답변이 이미 제공되었으니 참고하시면 도움이 될 것 같습니다.
질문 제목: “model.findone() no longer accepts a callback 오류”
질문 링크로 이동하기
감사합니다.
깃 이메일이랑 비번이 필요하다고 하네요
0
36
1
404 에러
0
103
1
34강 인증 체크에서 element 사용 때문에 에러나시는 분들 이렇게 하심 됩니다.
0
121
1
로그인, 로그아웃, 토근 작동 안 함
0
240
0
로그아웃 findOneAndUpdate 함수
0
171
1
9강 오류 어떻게 해결하나요?
0
195
1
localhost 에서 연결을 거부했습니다.
0
1931
4
포스트맨에서 true가 안떠요
0
151
1
왜 안되나요
0
130
1
몽고db 연결 오류가 납니다 위에껀 입력한 코드, 아래껀 터미널이에요
0
243
1
로그아웃 401 에러(Unauthorized)
0
506
2
암호가 해싱되지 않고 입력값 그대로 db에 저장되는 문제
0
151
1
7강중에서
0
167
2
User.findByToken is not a function
0
212
1
루트 디렉토리
0
272
1
useState
0
563
1
프록시 잘 설정했는데도 404 오류 뜨는 분들
5
876
6
webpack 관련 에러 질문
0
221
1
리액트 관련 질문
0
274
1
14강 로그아웃 안됨
0
319
1
mongoDB 데이터 확인하는 법
0
411
1
postman 에러
0
293
1
선생님 리덕스를 사용하면 어떠한 부분이 좋은지 알 수 있을까요?
0
235
1
다음과 같은 에러들이 발생합니다.
0
274
1





