• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 router질문입니다.

router질문입니다.

6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 글쓴이
  • #12123

    김창규
    참가자

    안녕하세요 제가 router를 사용하여 url에 접속시 router.js에서 html파일을 보여주는 코드를 작성하였습니다. 그런데

    ForbiddenError: Forbidden

    위와 같이 이상한 에러가 뜨면서 안 됌니다 코드는 아래와 같이 작성 하였습니다.

    server.js

    const express = require('express');
    const app = express();

    app.use('/',require('./routes/route.js'));

    app.listen(8080,function(){
      console.log('서버실행');
    });

     

    route.js

    const router = require('express').Router();
    const AWS = require("aws-sdk");
    AWS.config.loadFromPath(__dirname + "/../config/awsconfig.json");
    const multer = require("multer");
    const multerS3 = require('multer-s3');
    let s3 = new AWS.S3();

    let upload = multer({
      storage: multerS3({
        s3: s3,
        bucket: "canyoncontainer",
        key: function (req, file, cb) {
          cb(null, Date.now().toString() + 'Incident')
        },
        acl: 'public-read-write',
      })
    })

    router.get('/', function(req, res) {
      res.sendFile(__dirname + '/../index.html');
    });

    router.post('/upload', upload.single("Incident"), function(req, res, next){
      let imgFile = req.file;
      res.json(imgFile);
    })

    module.exports = router;

    #12131

    codingapple
    키 마스터

    전체 에러메세지가 필요할 것 같은데요 어떨 때 에러메세지가 뜨는 지도요 

    하지만 일단 아마존 s3 콘솔에서 접속허용 옵션을 제대로 설정하지 않아서 그런 것 같은 느낌이 듭니다 

    #12136

    김창규
    참가자

    아 따로 설정이 필요한거였군요;;

    #12141

    김창규
    참가자

    router js를 이런 식으로 전부 주석처리하고 get요청 하나만 남겨도 오류가 계속 나옵니다. 오류도 밑에 적어두겠습니다.

    const router = require('express').Router();
    // const AWS = require("aws-sdk");
    // AWS.config.loadFromPath(__dirname + "/../config/awsconfig.json");
    // const multer = require("multer");
    // const multerS3 = require('multer-s3');
    // require('dotenv').config();
    // let s3 = new AWS.S3();

    // let upload = multer({
    //   storage: multerS3({
    //     s3: s3,
    //     bucket: process.env.BUKKIT,
    //     key: function (req, file, cb) {
    //       cb(null, Date.now().toString() + 'Incident')
    //     },
    //     acl: 'public-read',
    //   })
    // })

    router.get('/', function(req, res) {
      res.sendFile(__dirname + '/../index.html');
    });

    // router.post('/upload', upload.single("Incident"), function(req, res, next){
    //   let imgFile = req.file;
    //   res.json(imgFile);
    // })

    module.exports = router;

    //오류메세지

    ForbiddenError: Forbidden
    at SendStream.error (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\upload\node_modules\send\index.js:270:31)
    at SendStream.pipe (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\upload\node_modules\send\index.js:553:12)
    at sendfile (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\upload\node_modules\express\lib\response.js:1103:8)
    at ServerResponse.sendFile (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\upload\node_modules\express\lib\response.js:433:3)
    at C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\upload\routes\route.js:21:7
    at Layer.handle [as handle_request] (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\upload\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\upload\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\upload\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\upload\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\upload\node_modules\express\lib\router\index.js:281:22

    #12145

    codingapple
    키 마스터

    sendFile할 때 path.join(__dirname, 'index.html경로~~') 

    이렇게 써보도록 합시다 path가 없으면 위에서 require('path') 해오도록 합시다 

    #12147

    김창규
    참가자

    드디어 해결 됐습니다 ㅠㅠ 감사합니다

6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠