Notice
Recent Posts
Recent Comments
Link
궤도
[Node.js] 자주 쓰는 코드 모듈로 관리하기(object promise 때문에 포기) 본문
지금 구현하고 있는 VIVA에는 항상 반복되는 코드가 하나 있다.
let result = await models.student.findOne({
where: {
stu_id: req.query.stu_id
}
});
const user = result.dataValues.stu_sn;
바로 stu_id를 pk인 stu_sn으로 바꾸는 이 코드이다. 이걸 모듈화해서 코드 중복을 없애도록 하자.
routes 폴더 아래에 lib 폴더를 만들고 func.js라는 파일을 만들었다. idtosn.js로 할까 했지만 나중에 저기에 다른 것들이 더 추가될 수도 있으니까...
routes/lib/func.js
var models = require('../../models');
var user_sn = {};
user_sn.alter = async function(req){
let result = await models.student.findOne({
where: {
stu_id: req.query.stu_id
}
});
return result.dataValues.stu_sn;
}
module.exports = user_sn;
일단 이렇게 작성했다.
var user_sn = require("./lib/func");
/.../
// let result = await models.student.findOne({
// where: {
// stu_id: req.query.stu_id
// }
// });
// const user = result.dataValues.stu_sn;
const user = user_sn.alter(req);
그리고 기존코드를 주석처리 하고 실행했는데
뭔가 일이 커질 것 같다는 예감이 들었다.
joshua1988.github.io/web-development/javascript/promise-for-beginners/
일단 저게 뭔지 알아보자
stackoverflow.com/questions/43422932/async-await-always-returns-promise
대충 async/await가 promise 객체를 반환하니까 unwrap 해줘야 한다는 말 같다...
~n시간의 구글링과 삽질 이후~
포기하기로 했다.
3줄밖에 안되는거 걍 쓰고 말지 하...
Comments