javascript기반의 서버 플랫폼으로서 높은 인기도를 얻고 있는 비동기 프로그래밍 등을 가능하게 하는 Node.js를 선택하여 Express 기반'밥상머리'라는 교육 서비스 플랫폼 베타개발.
Express, Node js , AWS, MySQL
- 프로젝트 구분 : 팀프로젝트(2명)
- 역할 :
전담 :
- Express기반으로 기능별로 module/router로 나누어 Back단 구성(MySQL)
- AWS의 S3스토리지에 파일업로드 기능 구현
- 테이블설계, ERD작성
보조 : view단 구성.
- Express기반으로 Rest api 형식으로 기본정보를 받아오게 구성했습니다. rodule/router로 나누어 Back단 구성(MySQL)
- npm들을 이용해 필수패키지들을 설치하여 기획서를 기반으로 액션처리 구현
aws에서 사용가능한 s3스토리지에서 저장을 하게 됩니다.
버킷에 저장하는 multipaty 모듈의 기능을 이용하여
스토리지에 버킷에 저장하게 됩니다.
- aws-sdk
- async
- formidable
- fs
- multiparty
- aws-sdk 모듈 로드 : 해당 모듈은 AWS 서비스를 사용하기 위한 javascript 객체를 제공해준다.
- multiparty 모듈은 파일업로드를 위한 npm 모듈.
var AWS = require('aws-sdk');
var multiparty = require('multiparty');
var fs = require('fs');
var s3 = new AWS.S3(); //버킷을 불러오기 위한 S3 객체를 생성.
AWS.config.loadFromPath();
router.all('/FileUpload', function(){
var form = new multiparty.Form();
form.on('file', function(name, file){
//bucket에 전송
var param = {
'Bucket' : 'bucketName',
'Key' : file.originalFilename,
'ACL' : 'public-read',
'Body' : null
};
param.Key = file.originalFilename;
param.Body = require('fs').createReadStream(file.path); //aws에 저장한 경로를 db파일 경로에 저장하게 된다.
//s3업로드
s3.upload(param, fucntion(err, data){
console.log(err);
console.log(data);
res.status(200).send(data);
});
});
from.parse(req);
});