Nodejs

 

 

1. 노드 설치
https://nodejs.org/ko/download/

 

 

2. Express-generate 를 이용하여 프로젝트 구성하기
$ npm install express-generator -g


3. express {APP_NAME} 명령어를 이용하여 프로젝트 생성
$ express www


4. 서버를 재시작 하지 않아도 실시간 코드가 반영되는  NodeMon을 설치
1) $ npm install nodemon --save-dev

2) package.json 다음을 추가
"scripts": {
   "start": "node ./bin/www",
   "dev": "nodemon  ./bin/www"
 },

3) 구동
$npm run dev


5. HTML 템플릿 엔진  EJS 설치
$ npm install ejs --save

app.js  상단에 다음을 추가
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

사용법 참조 : https://araikuma.tistory.com/454

 

6. mariadb  docker 설치
1)Windows 10에 MariaDB 설치하기
https://offbyone.tistory.com/199


2) docker 설치 방법
[Windows 10] Docker 설치 완벽 가이드(Home 포함)

#cmd 에서 mariadb docker 받기
#docker pull mariadb
#docker image ls


#mariadb 컨테이너 임의포트 3308포토를 통해 3306 도커 컨테이너에 접속 환경변수 root 접속 번호는 1111 mariadb 컨테이너
#docker run --name mariadb -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=1111 mariadb

#실행중인 것 확인
#docker ps
 

#접속 방법
#docker exec -it mariadb /bin/bash    

#mysql -u root -p
#접속 후 환경보기
#status


#툴에서 접속 방법
#서버 호스트
#ipconfig 로 확인
#ex) 192.168.174.1
#Database 입력란은 공백
#root 입력
#포트 3308
#비번 1111


7. myql 설치
#npm i mysql


app.js 에 추가
var dbRouter = require('./routes/db');
app.use('/db', dbRouter);

 

db.js

var express = require('express');
var router = express.Router();

var mysql = require('mysql');
var pool = mysql.createPool({
    connectionLimit: 10,
    host: '192.168.174.1',
    port: '3308',
    user: 'dev',
    password: '1111',
    database: 'dev'
});


pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
    if (error) throw error;
    console.log('The solution is: ', results[0].solution);
});

router.get("/", function (req, res) {

    pool.getConnection(function (err, connection) {

        if (err) throw err; // not connected!

        // Use the connection
        connection.query('select * from t_product', function (error, results, fields) {
            // When done with the connection, release it.
            connection.release();

            // Handle error after the release.
            if (error) throw error;

            // Don't use the connection here, it has been returned to the pool.
            console.log(results);

            res.render("db.html", { results: results });
            //res.send(JSON.stringify(results));

        });
    });

});

module.exports = router;

 

 

views/db.html

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <h1>DB</h1>
    <%
       for (let index = 0; index < results.length; index++) {
           const element = results[index].product_name;           
    %>
    <p><%= element %></p>

    <% } %>

</body>
</html>

 

node.js

 

about author

PHRASE

Level 60  라이트

하늘이 칠보(七寶)를 비처럼 내려 주어도 욕심은 오히려 싫증을 낼 줄 모르나니, 즐거움은 잠깐이요, 괴로움이 많음을 깨닫는 사람이 슬기로운 자이니라. -법구경

댓글 ( 5)

댓글 남기기

작성

Nodejs 목록    more