본문 바로가기
매일코딩/리눅스-우분투

우분투 16.04 Mysql, Express, Angular& node 환경셋팅 & 간단한 task 어플구현 no.1

by 인생여희 2017. 8. 1.
반응형

우분투 16.04 Mysql, Express, Angular& node 환경셋팅 & 간단한 task 어플구현 no.1



#터미널 열어서 프로젝트 폴더를 만든다


mkdir mytask


#폴더로 이동해서 init 명령어!


cd mytask


npm init


package.js 생성된다.



#필요한 모듈 다운로드(각각의 모듈 설명은 생략)

npm install express body-parser ejs mysql --save


package.js 폴더 열어서 잘 깔렸는지 확인



#visual studio code로 mytask 폴더 열기



#server.js 파일 생성후 작성


var express = require('express');

var path = require('path');

var bodyParser = require('body-parser');




//routes 

var index = require('./routes/index');

var tasks = require('./routes/tasks');


var port = 3000;


var app = express();


//view Engin 


app.set('views', path.join(__dirname, 'views'));

app.set('view engine', 'ejs');

app.engine('html',require('ejs').renderFile);


//set static folder


app.use(express.static(path.join(__dirname,'client')));



//body parser mw


app.use(bodyParser.json());


app.use(bodyParser.urlencoded({extended:false}));



app.use('/',index);


app.use('/api',tasks);



//run server

app.listen(port,function(){


console.log('server started on port'+ port);


});



#routes 폴더 생성

#routes 폴더 안에 index.js, tasks.js 파일 생성


#tasks..js 작성 (mysql 연동,  참고 http://poiemaweb.com/nodejs-mysql)

var express = require('express');

var router = express.Router();

var mysql = require('mysql');


var connection = mysql.createConnection({


host:'000.000.00.000',

user : 'mytask',

password:'0000',

port: 3306,

database: 'taskdb'


});



connection.connect();



router.get('/tasks',function(req,res,next){



connection.query('select * from test',function(err,rows,fields){



if(!err){

    console.log('show me test result:',rows);

    res.send('Hello this is tasks API page'+rows);}

else{

    console.log('err',err);    

    }


});


connection.end();


});


module.exports = router;


#index.js 작성

var express = require('express');

var router = express.Router();


router.get('/',function(req,res,next){

    res.send('Hello this is indexpage'}

});


module.exports = router;


#views 폴더 생성


#index.html 페이지 생성

<DOCTYPE html>

<html>

<head>

<title>task</title>

</head>

<body>

</body>

<html>


# 서버 모니터링 및 자동 업데이트 반영하는 녀석 설치 (터미널에서)

npm install -g nodemon



#MYSQL DB 생성 

CREATE DATABASE taskdb default CHARACTER SET UTF8;

SHOW DATABAS


GRANT ALL PRIVILEGES ON taskdb.* TO MYSQL아이디@localhost IDENTIFIED BY '비번';

(localhost 에서 MYSQL아이디를 사용하는 사람에게 taskdb 사용할수 있는 권한을 주겠다.)

또는 


GRANT ALL PRIVILEGES ON *.* TO 'MYSQL아이디'@'%' IDENTIFIED BY '비번';

(모든 ip에서 MYSQL아이디를 사용하는 사람에게 모든 db를 사용할수 있는 권한을 주겠다.)


EXIT;

mysql -u study_user -p

USE taskdb;




#mysql연동 소스 참고 (http://futurists.tistory.com/11 )

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : '< MySQL username >',

  password : '< MySQL password >',

  port     : < port >,

  database : 'my_db'

});


connection.connect();


connection.query('SELECT * from Persons', function(err, rows, fields) {

  if (!err)

    console.log('The solution is: ', rows);

  else

    console.log('Error while performing Query.', err);

});

connection.end();


#taskdb에 tset라는 테이블 만들고 데이터를 넣어준다.

- 테이블 생성

CREATE TABLE test

 ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(32) NOT NULL )

 ENGINE=INNODB;


- 데이터 2개 삽입
Insert into test(id, name) values ('NULL','KANG');


Insert into test(id, name) values ('NULL','KIM');


#localhost:3000/api/tasks 확인 (object 가 두개 보이면 성공)



반응형

댓글