exp_20220311
-- 파일첨부 모듈
CMD> npm i multer --save
-- 스케쥴링 모듈
CMD> npm i node-cron --save
-- 서버구동
CMD> nodemon --inspect ./bin/www
Schema = entity
책코드, 책제목, 파일, 파일크기, 파일타입, 파일명, 등록일
Sequence : SEQ_BOOK10_NO
Collection : book10
// 라이브러리 가져오기
// npm i mongoose --save
var mongoose = require('mongoose');
// entity에 해당하는것 만들기
var Schema = mongoose.Schema;
// npm install --save mongoose-sequence
const AutoIncrement = require('mongoose-sequence')(mongoose);
// + Schema = entity
// 책코드, 책제목, 파일, 파일크기, 파일타입, 파일명, 등록일
var bookSchema = new Schema({
_id : Number,
title : {type : String, default : ''},
filedata : {type : Buffer, default : null},
filesize : {type : Number, default : 0},
filetype : {type : String, default : ''},
filename : {type : String, default : ''},
regdate : {type : Date, default:Date.now}
});
// 시퀀스 사용설정
// '_id'에는 시퀀스를 써서 자동적으로 생성된 데이터가 들어갈 것이다.
bookSchema.plugin(AutoIncrement, {id : 'SEQ_BOOK10_NO', inc_field : '_id'});
// 컬렉션 book8에 bookSchema 형태로 넣겠다.
module.exports = mongoose.model('book10', bookSchema);
var uploadRouter = require('./routes/upload');
app.use('/upload', uploadRouter);
이미지 첨부 모듈
: var multer = require('multer');
: var upload = multer({storage : multer.memoryStorage()});
model import
: var Book1 = require('../models/book1');
var express = require('express');
var router = express.Router();
// 이미지첨부 모듈
var multer = require('multer');
var upload = multer({storage : multer.memoryStorage()});
// model import
var Book1 = require('../models/book1');
// 이미지등록
// 127.0.0.1:3000/upload/insert
router.post('/insert', upload.single("img"), async function(req, res, next) {
try {
console.log("req.body ===> ",req.body);
console.log("req.file ===> ",req.file);
var book = new Book1();
book.title = req.body.title;
if (typeof req.file !== 'undefined') {
book.filedata = req.file.buffer;
book.filesize = req.file.size
book.filetype = req.file.mimetype
book.filename = req.file.originalname
}
const result = await book.save();
console.log('result ===> ',result);
return res.send({status:200});
} catch (e) {
console.error(e);
return res.send({status:-1});
}
});
// 이미지 url 만들기
// 127.0.0.1:3000/upload/image?no=1
// 프론트 : <img src="/upload/image?no=1"/> // src는 GET으로
router.get('/image', async function(req, res, next) {
try {
const query = {_id : Number(req.query.no)};
const book = await Book1.findOne(query).select({title:0});
console.log('/image/book ===> ',book);
res.contentType(book.filetype);
return res.send(book.filedata);
} catch (e) {
console.error(e);
return res.send({status:-1});
}
});
module.exports = router;