Node.js의 MySQL 쿼리 콜백 함수에 매개변수를 전달하는 방법
P粉078945182
2023-08-22 15:44:32
<p>콜백에서 사용할 수 있도록 맞춤 데이터를 쿼리 호출에 전달하는 올바른 방법을 찾으려고 노력 중입니다.
저는 nodejs에서 MySQL 라이브러리(모든 최신 버전)를 사용하고 있습니다. </p>
<p>connection.query(sql, function(err, result) {...});</p> 호출이 있습니다.
<p>1) 콜백이 호출될 때 사용할 수 있도록 맞춤 데이터/매개변수를 호출에 전달하는 방법을 찾을 수 없습니다.
그렇다면 어떻게 하는 것이 옳은가요? </p>
<p>다음과 같은 의사코드가 있습니다: </p>
<pre class="brush:php;toolbar:false;">...
for (SomeJSONArray의 ix) {
sql = "someTable WHERE에서 (1) 선택 someColumn = " + SomeJSONArray[ix].id;
Connection.query(sql, 함수(err, 결과) {
...
var y = SomeJSONArray[ix].id;
};
}</pre>
<p>위 코드에서 쿼리에 사용된 "ix"의 현재 값을 콜백 자체에 전달할 수 있어야 합니다. </p>
<p>어떻게 해야 하나요? </p>
초기 질문에 답하고 예를 들어보려면 수신 데이터가 포함된 "스냅샷" 범위를 즉시 생성하는 익명 함수로 콜백 함수를 래핑하세요.
으아악이 개념을 막 배우는 저와 같은 사람들을 위해 마지막 })(ix));는 (function(ix){에 전달되는 외부 var ix=1의 값입니다. console.log("ix ="+abc);는 console.log("ix="+abc);로 변경된 다음 (function(abc){.
로 이름을 바꿀 수 있습니다.fwiw(솔루션을 찾을 수 있도록 공백을 메워주고 링크를 제공한 Chris에게 감사드립니다)
node-mysql을 사용하는 경우 설명서의 지침을 따르십시오.
으아아아문자열을 올바르게 이스케이프하는 코드도 문서에 제공되어 있지만 쿼리 호출에서 배열을 사용하면 자동으로 이스케이프됩니다.
https://github.com/felixge/node-mysql