node.js 질문드립니다.
본문
안녕하세요.
거의 1주일만을 삽질한결과 드디어 node.js에서
mysql 접속에 성공했습니다 ㅠ
한가지 질문드리고 싶은건...
카페24는 web.js가 구동파일이라 소스는 아래처럼 넣었습니다.
var mysql = require('mysql');
var connection = mysql.createConnection({
host : '10.0.0.1',
user : 'userid',
password : '1234',
database : 'userid'
});
connection.connect(function(err){
if(!err) {
console.log("Database is connected ... \n\n");
} else {
console.log("Error connecting database ... \n\n");
}
});
app.get("/",function(request,response){
connection.query('SELECT * from ct_01', function(err, rows, fields) {
connection.end();
if (!err){
var data="<html><head><title>mysql test</title></head>"
data+="<h1>주소록</h1>"
data+="<table border=\"1\">"
data+="<tr><th>Name</th><th>Address</th></tr>"
for (var i in rows){
data += "<tr>"
data += "<td>"+rows[i].msg +"</td>"
data += "<td>"+rows[i].address+"</td>";
data += "</tr>"
}
data+="</table></html>
이렇게해서 ct_01 테이블의 msg를 가져오는데는 성공했습니다.
근데 루트 / 로 접속해야 값이 나오는데
현재 사용중인 views/show.html 에
최근 올라간 값만 <td>"+rows[i].msg +"</td>
이런식으로 노출시키고 싶은데
라우터? 형식으로 하라는것 같은데 도통 감이 안잡힙니다.
고수님들의 조언 부탁드립니다...ㅠ
답변 3
app.get("/",function(request,response){
부분을 여러가지 형태로 만들수있습니다.
node뿐 아니라. Route라는 방식이
접속된 ULR이 무엇이냐에 따라 작동을 다르게 하는것이라서,
app.get("/",function(request,response){
를
index.js 혹은 index.html 에 해다되는 내용으로 넣고
app.get("/view/show",function(request,response){
와 같이 특정 route 이름을 정해서
내용을 코딩해주면됩니다.
내용이 길어지게 되면 파일로 분리하시면됩니다.
https://jiwondh.github.io/2017/01/17/routes-seperate/
를 참고하세요
app.get("/",function(request,response) 이부분이 "/" 접속입니다.
app.get("/new/:id") 식으로 다시 함수를 만들어 주시면 됩니다.
(node.js에서 위의 식이 맞는 지는 모릅니다.( 검색 필요)
Connection 을 그렇게 만들고 사용하면 재사용 불가능합니다.
커넥션을 매번 새로 만들어주시던지 커넥션을 재연결 해 주셔야 합니다.
메인에다가 적어놓으면... 네;;