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

home2 게시판 Node.js, Express 게시판 gae 배포 이후 react axios 문제

gae 배포 이후 react axios 문제

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

    정준
    참가자
    
    강의 내용대로 react 합쳐서 gae로 올렸는데 이런 오류가 발생합니다. 뭐가 문제인지 감이 안 잡혀여쭤봅니다.
    
    파일 구성
    
    blog-manager에서 gcloud app deploy 했습니당
    
    
    server.js
    
    const express = require('express');
    const app = express();
    const path = require('path');
    app.use(express.urlencoded({extended: true}))
    const MongoClient = require('mongodb').MongoClient;
    app.set('veiw engine','ejs')
    const methodOverride = require('method-override');
    app.use(methodOverride('_method'));
    require('dotenv').config()
    app.use(express.json());
    var cors = require('cors');
    app.use(cors());
    var db;
    const url = process.env.DB_URL;
    MongoClient.connect(url,function(err,clinet){
    if(err) return console.log(err)
     db = clinet.db('blog-manager');
     
     app.listen(process.env.PORT, function(){
     console.log(process.env.PORT)
     })
    });
    app.use(express.static(path.join(__dirname, '/blog-manager/build/')));
    app.get('/',function(req, res){
     res.sendFile(__dirname + '/blog-manager/build/index.html')
    })
    // /add로 db에 때려 넣기
    app.post('/add',function(req,res){
     db.collection('count').findOne({name: 'dataNum'}, (err, result)=>{
     console.log(result.totalPost)
    var totalPost = result.totalPost;
    var keywords = req.body.keywords.replace(" ").split(',');
     
     db.collection('data').insertOne({_id : totalPost+1, title: req.body.title, keywords: keywords, writer: req.body.id}, ()=>{
     console.log('저장완료');
     db.collection('count').updateOne({name:'dataNum'},{ $inc: {totalPost:1}},(err, result)=>{
    if(err) return console.log(err);
     console.log('data 증가 성공');
     db.collection('user').updateOne({id: req.body.id},{ $push: {data: totalPost+1}})
     res.redirect('/myPage/'+req.body.id); //res는 하나만 써야함.
     })
     })
     })
    })
    app.get('/list',(req,res)=>{
     db.collection('data').find().toArray((err,result)=>{
    if(err) return err
     res.send(result)
     })
    })
    // app.get('/list/:id',(req,res)=>{
    // var list = [];
    // db.collection('user').findOne({id: req.params.id}, (err, result)=>{
    // try {
    // db.collection("data").find({ _id: result.data[i] }).toArray(
    // (err, resultData) => {
    // console.log("result: " + resultData[0])
    // list.push(resultData[0])
    // }
    // )
    // } catch (err) {
    // console.log(err);
    // }
    // })
    // })
    app.delete('/list',(req, res)=>{
     db.collection('data').deleteOne({_id: parseInt(req.body._id)},(err,result)=>{
     console.log('삭제함')
     res.status(200);
     })
    })
     
    app.post('/register',(req, res)=>{
     db.collection('user').insertOne({id: req.body.id, pw: req.body.pw, data: []},(err,result)=>{
     console.log('등록함')
     res.redirect("/login")
     })
    })
     
    const passport = require('passport');
    const LocalStrategy = require('passport-local').Strategy;
    const session = require('express-session');
    app.use(session({secret : '비밀코드', resave : true, saveUninitialized: false}));
    app.use(passport.initialize());
    app.use(passport.session());
    app.post('/login', passport.authenticate('local',{
    failureRedirect: '/login'
    }),(req, res)=>{
     res.redirect('/')
    })
    const isLogin = (req, res, next) => {
    if (req.user){
    next()
     } else {
     res.send(false)
     }
    }
    app.get('/user',isLogin,(req, res)=>{
     res.send(req.user)
    })
    passport.use(new LocalStrategy({
    usernameField: 'id',
    passwordField: 'pw',
    session: true,
    passReqToCallback: false,
     }, (id, pw, done) => {
    //console.log(입력한아이디, 입력한비번);
     db.collection('user').findOne({ id: id }, function (err, result) {
    if (err) return done(err)
     
    if (!result) return done(null, false, { message: '존재하지않는 아이디요' })
    if (pw == result.pw) {
    return done(null, result)
     } else {
    return done(null, false, { message: '비번틀렸어요' })
     }
     })
     }));
    // 세션등록하기
    passport.serializeUser((user, done)=>{
    done(null, user.id)
    })
    passport.deserializeUser((id, done)=>{
     db.collection('user').findOne({id:id}, (err, result)=>{
    done(null, result)
     })
    })
    app.get('*', function (req, res) {
     res.sendFile(path.join(__dirname, '/blog-manager/build/index.html'));
     });
    // /list db에서 가져오는
    
    
    		
    	
    #62267

    codingapple
    키 마스터
    서버프로젝트랑 리액트프로젝트는 각각 다른 폴더에 분리합시다 
    res.sendFile(path.join(__dirname, '/blog-manager/build/index.html')); 경로도 약간 이상한듯요
    
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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