02-12 08:01
Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
관리 메뉴

기록을 합시다.

mysql2에서 Error: Bind parameters must be array if namedPlaceholders parameter is not enabled 해결하기 본문

공부/javascript

mysql2에서 Error: Bind parameters must be array if namedPlaceholders parameter is not enabled 해결하기

울집고양이세마리 2023. 3. 31. 01:22

express로 코딩을 하고 있는데 에러가 났다..

전체 에러 메시지는 아래와 같다. 

C:\account-book\server\node_modules\mysql2\promise.js:369
    const localErr = new Error();
                     ^

Error: Bind parameters must be array if namedPlaceholders parameter is not enabled
    at PromisePool.execute (C:\account-book\server\node_modules\mysql2\promise.js:369:22)
    at User.checkEmail (C:\account-book\server\models\userModel.js:26:12)
    at exports.create (C:\account-book\server\controllers\userController.js:22:21)
    at Layer.handle [as handle_request] (C:\account-book\server\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\account-book\server\node_modules\express\lib\router\route.js:144:13)
    at Route.dispatch (C:\account-book\server\node_modules\express\lib\router\route.js:114:3)
    at Layer.handle [as handle_request] (C:\account-book\server\node_modules\express\lib\router\layer.js:95:5)
    at C:\account-book\server\node_modules\express\lib\router\index.js:284:15
    at Function.process_params (C:\account-book\server\node_modules\express\lib\router\index.js:346:12)
    at next (C:\account-book\server\node_modules\express\lib\router\index.js:280:10) {
  code: undefined,
  errno: undefined,
  sql: undefined,
  sqlState: undefined,
  sqlMessage: undefined
}

의외로 이 에러는 대처하기 쉽다. 에러를 읽어보면 Bind parameters must be array if namedPlaceholders parameter is not enabled가 떴다. 그래서 바로 model 파일로 가서 pool.execute에 있는 query 전달 파라미터를 []로 묶어주면 된다. 

  async checkEmail(email){
      pool.execute(
        "SELECT * FROM user WHERE email=?",
        email //여기 때문에 오류남 => [email] 로 적어줘야함.
      );
  }

사실 Express랑 mysql2 라이브러리는 처음이라 이것저것 실수가 너무 많다. -_-;; 

아무튼 당황하지 않고 에러 메시지를 읽는 습관이 중요하다. 

Comments