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

home2 게시판 Node.js, Express 게시판 waiting for changes before restar

waiting for changes before restar

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

    전제욱
    참가자
    노트북으로 집에서 작업하다가 밖으로 나와서 작업하면 코드를 하나도 건드리지 않았는데도 저런 오류가 발생하면서 서버가 계속 실행되지 않습니다.
    계속 찾아봐도 해결되지 않아 문의드립니다 ㅠㅠ
    
    
    const express = require('express');
    const app = express();
    const bodyParser = require('body-parser');
    app.use(express.urlencoded({extended: true}));
    app.set('view engine', 'ejs');
    require('dotenv').config();
    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());
    const MongoClient = require('mongodb').MongoClient;
    var db;
    MongoClient.connect(process.env.DB_URL, { useNewUrlParser: true, useUnifiedTopology: true }, function(error, client) {
    if(error) {
    return
    console.log(error);
     }
    db = client.db('bulletin')
    app.listen(process.env.PORT, function(){
    console.log('listening on 8080')
     });
    app.get('/login', function(req, res){
    res.render('login.ejs')
     })
    app.post('/login', passport.authenticate('local', {
    failureRedirect : '/fail'
     }) , function(req, res){
    res.redirect('/bulletin')
     })
    //이해하지말고 걍 복사하셈 아이디랑 비번 검증하는 코드
    passport.use(new LocalStrategy({
    usernameField: 'id',
    passwordField: 'pw',
    session: true,
    passReqToCallback: false,
     }, function (입력한아이디, 입력한비번, done) {
    //console.log(입력한아이디, 입력한비번);
    db.collection('login').findOne({ id: 입력한아이디 }, function (error, result) {
    if (error) return done(error)
    if (!result) return done(null, false, { message: '존재하지않는 아이디입니다' })
    if (입력한비번 == result.pw) {
    return done(null, result)
     } else {
    return done(null, false, { message: '비번번호가 일치하지 않습니다' })
     }
     })
     }));
     
    passport.serializeUser(function(user, done){
    done(null, user.id)
     })
    passport.deserializeUser(function(id, done){
    db.collection('login').findOne({id : id}, function(error, result){
    done(null, result)
     })
     })
    app.get('/bulletin', loginClear, function(req, res){
    //디비에 저장된 post라는 collection 안에 모든 데이터를 꺼내주세요. 아니면 뭐 아이디가 뭐인 데이터 꺼내셈 이런거
    db.collection('post').find().toArray(function(error, result){
    console.log(result)
    res.render('bulletin.ejs', { answers : result });
     })
     })
    app.post('/bulletin', function(req, res){
    //완료되었다는 alert창이 뜨게 해주세요.
    console.log('대답은' + req.body.answer);
    //counter 데이터베이스 하나 더 만들어서 카운터 따로 관리해줘야함
    db.collection('counter').findOne({name : '게시물갯수'}, function(error, result){
    console.log(result.totalPost)
    var totalPost = result.totalPost;
    var Storage = {_id : totalPost + 1, 작성자 : req.user.name, 답변 : req.body.answer};
     
    db.collection('post').insertOne(Storage, function(error, result){
    console.log('저장완료');
    db.collection('counter').updateOne({name : '게시물갯수'}, {$inc : {totalPost:1}}, function(error, result){
    if(error) {
    return
    console.log(error)
     }
     })
     })
     })
     })
    function loginClear(req, res, next) {
    if(req.user){
    next()
     } else {
    res.render('login.ejs')
     }
     }
    app.get('/', function(req, res){
    res.render('index.ejs')
     })
    })
    [nodemon] 3.0.1
    [nodemon] to restart at any time, enter `rs`
    [nodemon] watching path(s): *.*
    [nodemon] watching extensions: js,mjs,cjs,json
    [nodemon] starting `node server.js`
    [nodemon] clean exit - waiting for changes before restart
    
    
     
    #98039

    codingapple
    키 마스터
    mongodb 사이트에서 db 접속가능한 ip 설정잘해놨나 확인합시다
    #98296

    전제욱
    참가자
    ip 문제였네요! 감사합니다!
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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