우분투 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 가 두개 보이면 성공)
'매일코딩 > 리눅스-우분투' 카테고리의 다른 글
ubuntu 16.04 Apache2 PHP 설치하기 (0) | 2017.08.25 |
---|---|
우분투 16.04 Mysql, Express, Angular& node js를 npm페키지로 초간단 간단셋팅 (0) | 2017.08.02 |
우분투16.04 Visual Studio Code와 Angular cli 설치하기 (0) | 2017.07.31 |
우분투16.04 vmware&iptime 포트포워딩 가변ip 문제 TwinIP로 해결하기 (2) | 2017.07.28 |
우분투16.04 집에서 회사 서버에 접속해보자 iptime&vmware 포트포워딩 외부접속! (2) | 2017.07.27 |
댓글