Skip to content
Snippets Groups Projects
post.js 2.36 KiB
Newer Older
import express from 'express';
import multer from 'multer';
import path from 'path'
Hyun Woo Jeong's avatar
Hyun Woo Jeong committed
import moment from 'moment'

import userService from './data/userService.js';
import articleService from './data/articleService.js';

const __dirname = path.resolve();

export const router = express.Router();

const upload = multer({
    storage: multer.diskStorage({ // 저장한공간 정보 : 하드디스크에 저장
        destination(req, file, done) { // 저장 위치
Hyun Woo Jeong's avatar
Hyun Woo Jeong committed
            done(null, 'public/uploads/'); // uploads라는 폴더 안에 저장
        },
        filename(req, file, done) { // 파일명을 어떤 이름으로 올릴지
            const ext = path.extname(file.originalname); // 파일의 확장자
            done(null, path.basename(file.originalname, ext) + Date.now() + ext); // 파일이름 + 날짜 + 확장자 이름으로 저장
        }
    }),
    limits: { fileSize: 5 * 1024 * 1024 } // 5메가로 용량 제한
  });

Hyun Woo Jeong's avatar
Hyun Woo Jeong committed
router.post("/upload", upload.array("img"), async function(req, res, next) {
	if(!req.session.sessionid){
		// 세션이 없엉
	}
Hyun Woo Jeong's avatar
Hyun Woo Jeong committed
	console.log("포스팅 '해줘'");

  const inputTitle = req.body.title
  const inputContent = req.body.content
  const inputImage = req.files.map(el => el.path);
	const useremail = req.session.sessionid.email
	const author = await userService.findUserByEmail(useremail);
  const inputkeyword = req.body.keyword
  const inputlat = req.body.latitude
  const inputlng = req.body.longitude
Hyun Woo Jeong's avatar
Hyun Woo Jeong committed
  const currentTime = moment().format('YYYY-MM-DD HH:mm:ss')

  await articleService.createArticle({
		title: inputTitle,
		content: inputContent,
Hyun Woo Jeong's avatar
Hyun Woo Jeong committed
		imageUrls: inputImage,
		author: author,
    keyword: inputkeyword,
    latitude: inputlat,
    longitude: inputlng,
Hyun Woo Jeong's avatar
Hyun Woo Jeong committed
		likes: [],
    createdAt: currentTime
	});
  
	console.log('saved.')
	res.send();
Hyun Woo Jeong's avatar
Hyun Woo Jeong committed
    res.send();
  });
router.get("/loadarticle", async (req, res) => {
  console.log(path.join(process.cwd(), '/public'))
  if(req.session.sessionid){	
	console.log("세션 O")
  }
  else {
	console.log("세션 X")
  }
  const articles = await articleService.findAllArticle();
  articles.forEach((article) => {
    article.imageUrls.forEach(
      (urls) => {
        try{
          //res.sendFile(path.join(__dirname, urls));
        }
        catch(err){
          console.log(err)
        }
      });
  });
  res.send(JSON.stringify(articles) );
});
export default router;