[nodejs]모듈만들기 / Create a module

모듈을 사용하면 좀 더 가독성이 좋아집니다.
Using modules makes it more readable.

특별히 기능별로 모듈을 구성하면 이해하기 편합니다.
It is easier to understand if you organize modules by function.

이 시간에는 mysql데이터베이스에 데이터 입력하고 검색하는 부분을 모듈로 만들어 봅니다.
At this time,we will create a module for entering and retrieving data into the mysql database.

먼저 mysql이 설치되어 있어야 하고 mysql2모듈이 설치되어있어야 합니다.
First, the mysql database must be installed and the mysql2 module must be installed.

1.user테이블 만들기(Create a user table)
– usre.sql파일 만들기(Create a usre.sql)

– mysql 데이터베이스에 user.sql실행(Run user.sql on mysql database)

– 테이블 생성 확인(Confirm table creation)

2.코드작성(Write code)
– 모듈파일 만들고 코드작성(Create a module file and write code)

//mysqldb.js

const mysql = require('mysql2'); // mysql module

async function userInsert(hostname, dbuser, dbpassword, dbname, userid,password,name) {
    const connection = mysql.createConnection({
        host: hostname,
        user: dbuser,
        password: dbpassword,
        database: dbname
    });

    return new Promise((resolve, reject) => {
        var sql = 'INSERT INTO user(userid,password,name) values(?,?,?)';
        var values = [userid,password,name];
        connection.query(sql, values, (error, rows) => {
            if (error) {
                reject(error);
            } else {
                resolve(rows);
            }
        });
    }).finally(() => {
        connection.end((err) => {
            if (err) {
                console.error('Error closing the connection:', err);
            } else {
                
            }
        });
    });
}
module.exports = { userInsert };

-server.js코드작성(Write server.js code)

//server.js --> Commonjs type
const { createServer } = require('http');
const ejs = require('ejs'); //ejs
const express = require('express'); //express
const path = require('path'); //path
const mysql = require('mysql2'); // mysql

const app = express();
const server = createServer(app);

// ejs settings
//-----------------------------------------------
app.set('view engine','ejs');
app.set('views','./public');

// Serve static files from the 'public' directory
app.use(express.static(path.join(__dirname, "public")));

//-----------------------------------------------
// mysql db information
const dbname = "your database name";
const hostname = "localhost";
const dbuser = "your database user";
const dbpassword = "your password";

// module import
const {
  userInsert,
} = require("./mysqldb");
//-----------------------------------------------

const hello = "Hello world!";
app.get("/test", (req, res) => {
  res.render('test', { message:hello });
});

//------------------------------------------------

app.get("/user", (req, res) => {
  
  const hello = "db insert complete";
  try{
    userInsert(hostname, dbuser, dbpassword, dbname, "userid1","123456","johnDoe")
    res.render('test', { message:hello });

  }catch(error){

    console.error('Error fetching data:', error);
    res.status(500).send('Internal Server Error');
  }

});

//-----------------------------------------------


// Start the server
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

3. 코드 실행 결과 확인(Check code execution results)
– server.js코드 실행 및 브라우저 테스트(Execute server.js code and test browser)

-mysql에 데이터 입력확인(Check data entry into mysql)

Leave a Reply

Your email address will not be published. Required fields are marked *