[SSAC X 코딩온] (2021.10.21) Node.js 입문 수업 2일차

RyuSW·2021년 10월 21일
0
post-thumbnail

📚 지난 수업 복습타임


  • node.js는 프레임워크가 아니기 때문에 서버를 실행하는 파일을 자기가 직접 만들어야 한다!

  • npm init 으로 node_modules 파일을 만들어준다.

  • app.js = 서버키는 기능

  • Routing = django에서 urls.py 기능

  • 백엔드 코드 = django에서의 views.py 기능

  • SPA는 javaScript의 강점을 최대한 활용할 수 있다.

  • express는 내장된 함수가 아니기 때문에 따로 불러와야 한다.

  • Django에서의 import는 javascript에서 require다.



📢 Node.js에서 MySQL 사용해보기


  • Node.js로 회원가입을 할 때 회원가입된 회원의 데이터를 저장할 데이터베이스가 필요하다.
    따라서 지금부터 mySQL을 이용해서 데이터를 저장하고 수정할 수 있게 만들 것이다.

✋ 그 전에 Node.js 테스트 파일에서 mySQL을 입문해볼 것이다.




  • 먼저 node.js에서 mysql를 사용할 수 있도록 npm으로 설치를 하자!

    npm install mysql


  • mysql_test.js 파일을 생성하고 다음과 같이 작성해준다.
    var express = require('express');
    var app = express();
    var mysql = require( 'mysql' );

    var conn = mysql.createConnection({
        user: 'root',
        password: '개인이 설정하고 싶은 비밀번호 입력',
        database: 'SSAC'
    });

    app.listen( 8100, function () {
        console.log( conn.state );
        console.log( "Listening on *:3000" );
    });

  • 파일을 node.js 터미널에서 실행시켜본다.

    node mysql_test.js

  • DB와의 상태가 disconnect라고 뜬다 왜 그럴까...?


  • 아마도 비밀번호가 일치하지 않거나 초기에 설정한 값이 없어서 인 것으로 추측됨.
    따라서 mySQL의 비밀번호를 다시 설정해 주어야함!

  • 아래와 같은 명령어로 비밀번호 설정!

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '변경할 비밀번호';

  • 그 후 Putty 터미널에서 mySQL 실행! 아래 명령어를 입력하면 비밀번호를 입력하라고 나오는 데 위에서 설정한 비밀번호를 입력하면 된다!

    mysql -u root -p


  • mysql_test.js의 내용을 수정하기 다시 실행시켜 보도록 하겠다.
    var express = require('express');
    var app = express();
    var mysql = require( 'mysql' );

    var conn = mysql.createConnection({
        user: 'root',
        password: 'ssac()',
        database: 'SSAC'
    });

    app.listen( 8100, function () {
        conn.connect( ( err ) => {
            if ( err ) console.log( err );
            else console.log( "DB connected successfully!" );
        });

  • 다음과 같이 뜨면 DB와 연결이 정상적으로 된 것이다!!

💹 Node.js에서 데이터를 insert하기

    app.listen( 8100, function () {

        conn.connect( ( err ) => {
            if ( err ) console.log( err );
            else console.log( "DB connected successfully!" );
        });



        var sql = "INSERT INTO member VALUES('david', '데이빗', '2021-10-21');"

        conn.query(sql, function(err) {
                if( err ){
                        console.log( 'failed!! : ' + err );
                }
                else {
                        console.log( `"data inserted!"` );
                }
        });
    });
  • 데이터가 insert되면 "data inserted!" 문장이 출력된다.

  • 데이터가 정상적으로 잘 입력되었다.



💹 Node.js에서 데이터를 select하기

app.listen( 8100, function () {
	conn.connect( ( err ) => {
		if ( err ) console.log( err );
		else console.log( "DB connected successfully!" );
	});

	// select 예제
	var sql = "SELECT * FROM member;"

	conn.query( sql, function( err, results ) {
		for ( var i = 0; i < results.length; i++) {
			console.log ( "아이디 : " + results[i]["ID"] );
			console.log ( "이름 : " + results[i]["name"] );
		}
	} );
});
  • 해당 명령문이 정상적으로 작동했다면 다음과 같이 나올 것이다.




✅ 다음 실습 과제 :


  • 금일 배운 MySQL 데이터 조작을 토대로 Node.js에서 회원가입 등의 CRUD를 구현하기

💢 오늘의 수업 후기


profile
배운 것은 항상 그 때 문서화하자!

0개의 댓글