아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
강직한영양184
강직한영양18420.11.03

my sql이랑 nodejs 연동하려는데 자꾸 오류가 납니다.

현재 '모던웹을 위한 node.js 프로그래밍' 이라는 교재를 사용하고 있습니다.

교재대로 진행중인데 오류가 자꾸나서 질문하고싶습니다.

먼저 mysql에 테이블 생성은 했구요,

node.js 에는

var mysql = require('mysql');

var client = mysql.createConnection({

user: 'root',

password: '278011',

database: 'Company',

insecureAuth: true

});

client.query('USE Company');

client.query('SELECT * FROM products', function(error,result,fields){

if(error){

console.log('쿼리 문장에 오류가 있습니다.');

} else {

console.log(result);

}

});

이렇게 했는데 쿼리 문장에 오류가 있다고만 출력됩니다..

구글링 했을때는 버전을 맞춰야한다, ALTER로 해결할 수 있다 하는데 어떤 방안이 없을지 여쭙니다.. 부탁드립니다...

55글자 더 채워주세요.
답변의 개수
2개의 답변이 있어요!
  • 안녕하세요

    indentation이 깨져서 조금 알아보기 힘든것 같습니다. 원인은 node.js는 async로 동작을 하는데 sync라고 고려한 부분이 있어서 그런것 같구요.

    var mysql = require('mysql'); var client = mysql.createConnection({ user: 'root', password: '278011', database: 'Company', insecureAuth: true }); client.query('USE Company'); client.query('SELECT * FROM products', function(error,result,fields){ if(error){ console.log('쿼리 문장에 오류가 있습니다.'); } else { console.log(result); } });

    여기에서 각각의 문장에 await를 붙이시거나 client.query를 client.createConnection안으로 넣으시면 될 것 같습니다.

    일단 수행을 위해서 아래와 같이 고쳐보시면 좋을 것 같습니다.

    var mysql = require('mysql'); var client = await mysql.createConnection({ user: 'root', password: '278011', database: 'Company', insecureAuth: true }); await client.query('USE Company'); await client.query('SELECT * FROM products', function(error,result,fields){ if(error){ console.log('쿼리 문장에 오류가 있습니다.'); } else { console.log(result); } });


  • My SQL에 접속할 때 필요한 HOST 정보가 없는 것 같습니다.

    아래 코드와 같이 host 정보가 필요합니다.

    My SQL이 내컴퓨터에 설치가 되어 있다면 localhost를 사용하면 됩니다.

    const mysql = require('mysql'); const connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '278011', database : 'Company' });