저는 node.js를 처음 사용하고 학교 프로젝트에서 약속을 사용하고 싶습니다. 내가 온라인 및 스택에 몇 가지를 발견 :약속 Node.js mysql
이 나를 위해 노력하고 있습니다router.post('/matchaSearch', function(req, res) {
var username = session.uniqueID;
var searcherPackage = {};
function userAgeCheck(randomParam) {
return new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
var query = 'SELECT username, age, orientation, sex FROM usersinfo WHERE username != ?';
connection.query(query, [username], (err, rows, fields) => {
connection.release();
return err ? reject(err) : resolve(rows);
});
});
});
}
userAgeCheck('username')
.then((rows) => {
/*console.log(rows);*/
searcherPackage = rows;
console.log(searcherPackage);
// do stuff
}).catch((err) => {
throw err;
});
});
, 그것은에서 나에게 모든 것을 반환 Use promise to process MySQL return value in node.js
하지만 질문이, 지금까지이 내가 가진 무엇 db except me (사용자 이름). 하지만 나에게 이것은 옳지 않다. 무작위 매개 변수를주는 것이 좋은 이유는 무엇입니까?
그래서 'randomParam'대신 param으로 'username'을 지정해야합니다.하지만 그렇게하면 쿼리는 나를 제외한 모든 사용자 대신 모든 것을 반환합니다. 그래서 나는 그것을 제거하고 방금 'randomParam'을주었습니다. 설명 할 수 있습니까? 이 일을 제대로하고 있습니까? 그렇다면 계속 프로젝트를 수행 할 수 있습니다. 도움을 주셔서 감사합니다.
따옴표 붙은 코드의'randomParam'에 의해 제공되는 목적이 없습니다. 그것은 당신의 코드입니다, 안 그래요? 그런데 왜 그곳에 있습니까? 그것은 무엇을해야 했습니까? –
'pool.getConnection' 콜백에서'err'을 검사해야합니다. 또는 Bluebird와 같은 라이브러리를 사용하고 적절하게 체인을 연결할 수 있도록 이러한 메서드를 제공하고 오류가 반환 된 약속을 자동으로 거부하도록합니다. – cdhowie
'Promise.promisify'를 사용하면 Node.js 스타일의 콜백 메소드를 자동으로 약속으로 변환하여 자신 만의 래퍼를 작성할 필요가 없다는 것을 잊지 마십시오. – tadman