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로 해결할 수 있다 하는데 어떤 방안이 없을지 여쭙니다.. 부탁드립니다...
안녕하세요
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' });