Node.js 웹개발로 알아보는 백엔드 자바스크립트의 이해

Node.js 웹개발로 알아보는 백엔드 자바스크립트의 이해

(39개의 수강평)

3512명의 수강생
무료
지식공유자 · 윤지수
30회 수업 · 총 4시간 27분 수업
평생 무제한 시청
수료증 발급 강좌
수강 난이도 '중급'
오소리 Osori beatbox 프로필

network status가 200이 아니라 304가 뜨는데 왜 그런걸까요? 오소리 Osori beatbox 1달 전

network status가 200이 아니라 304가 뜨는데 왜 그런걸까요?

0
Zisoo Zzoi 프로필

DB에 새로운 계정으로 입력해도 id가 계속 0입니다T_T; (증가하지 않음) Zisoo Zzoi 1달 전

 
//join.js
passport.serializeUser((userdone)=>{
    console.log('passport session saved:'user)
    done(nulluser// <- used deserialze for first arg
})

passport.deserializeUser((userdone)=>{
    console.log('passport session get id:'user)
    done(nulluser//
})

 passport.use('local-join'new LocalStrategy({
     usernameField: 'email',    // *form 의 input name과 일치해야함 
     passwordField: 'password'// *form 의 input name과 일치해야함 
     passReqToCallback: true,
 }, function(reqemailpassworddone){
     // 인증 처리 DB 접속 row 존재 여부 조회 등...
     const query = connection.query('select * from user where email=?', [email], (err,rows)=>{
         if(errreturn done(err);
         if(rows.length){
             console.log('your email is already exist')
             return done(nullfalse, {message: 'your email is already used'})
         }else{
             //insert
             const sql = {email: emailpassword: password};
             const query = connection.query('insert into user set ?'sql, (err,rows)=>{
                 if(errthrow err
                 return done(null, {'email': email'id': rows.insertId}) //session에 담을 정보를 넣을수있음 -> serialize 하지 않으면 에러 발생 
             })
         }
     })
 }))
[Terminal]
Listening on the port 3001 passport session saved: { email: 'hello@gmail.com', id: 0 } passport session get id: { email: 'hello@gmail.com', id: 0 } main.js loaded: { email: 'hello@gmail.com', id: 0 } passport session get id: { email: 'hello@gmail.com', id: 0 }

1
앨리스 프로필

db에 데이터 추가하기에서 rows.insertId에 0만 나옵니다 앨리스 1달 전

db에 데이터 추가할때 자동으로 번호가 붙지 않네요.

자동으로 번호가 붙는 컬럼 어떻게 추가해야 할까요?

0
Mr. Leo 프로필

Ajax 구현부분 질문입니다.(중간체크 진행중 발생, 검색창만들기) Mr. Leo 5달 전

/html의 내부 script.

async function sendAjax (url, data){
       var data = {"search" : data}  //넘겨주는 data값 
       var dataInfo1 = {
                method : "POST",  //메소드 반드시 지정해줘야 app.js 파일에서 찾을수 있음.
                body : JSON.stringify(data),
                headers : {
                    "Content-Type" : "application/json"
                }
            };

        const res = await fetch(url, dataInfo1);    
        const result = await res.json();

        console.log(result);
        if(result.result === "ok"){
                console.log("2", result.search)
                document.querySelector(".showSearch").innerHTML = result.search;
        }
   }

위의 넘겨주는 data의 key 값을 "search-value" 로 변경하고 아래 주석처리한 값이 undefind으로 뜹니다(console.log("1",req.body."search-value"); //undefind)

//<app.js>

app.post('/search', (req, res)=>{
    // console.log("1",req.body."search-value"); //undefind
    console.log(req.body);
    var responseData1 = {'result' : 'ok', 'search' : req.body.search};
    res.json(responseData1);
})

responseData1의 두번째 키 값인 'search-value'로 하면 undefind으로 계속가져와서 결국 키값을 search로 바꿨는데요..

AJAX 통신할때 보내는 데이터의 키값을 작성해야하는 규칙이 있는건가요? 

1
김수진 프로필

TypeError: req.flash is not a function 김수진 6달 전

이 에러가 계속떠서 에러위치 찾아보니깐 req.flash사용한 부분에서 에러가 나는데

필요한 모듈설치와 미들웨어 설정도 했는데 왜이런가요?

1
정민석 프로필

cross origin (?) 에러 가 납니다. 정민석 2018.11.02

Access to XMLHttpRequest at 'http://127.0.0.1:3000/login' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

localhost로 접속했을 경우 이런 오류가 납니다.

127.0.0.1로 접속하면 해결되긴하는데 , 왜 이런 에러가 나는건가요?

또 어떻게 고칠까요

1
최선필 프로필

mysql uid 최선필 2018.06.28

강사님 강의를 보면 UID 값이 임의로 저장이 되는데 저같은 경우 테이블에 UID 항목도 없을 뿐만 아니라, rows.insertId 를 하게되면 0 으로만 나오는데 강사님처럼 mysql을 어떻게 하나요?

1
최선필 프로필

innerHTML 최선필 2018.07.10

Uncaught TypeError: Cannot set property 'innerHTML' of null

at XMLHttpRequest. (form.html:30)

(anonymous) @ form.html:30

load (async)

sendAjax @ form.html:27

(anonymous) @ form.html:17

이런 오류가 나는데 어떤게 문제 일까요?

코드는 아래와 같습니다

<!doctype html>

email form

email:

ajaxsend

document.querySelector('.ajaxsend').addEventListener('click',function(){

var inputdata = document.forms[0].elements[0].value;

sendAjax('http://127.0.0.1:3000/ajax_send_email',inputdata);

})

function sendAjax(url, data){

var data = {'email' : data};

data = JSON.stringify(data);

var xhr = new XMLHttpRequest();

xhr.open('POST',url);

xhr.setRequestHeader('Content-Type',"application/json");

xhr.send(data);

xhr.addEventListener('load',function(){

var result = JSON.parse(xhr.responseText);

if(result.result != "ok")return;

document.querySelector(".result").innerHTML = result.email;

});

}

1
yj na 프로필

nodejs와 mysql 연동 에러 yj na 11달 전

Connection.connect(); 를 추가한 후 저장하면

다음과 같은 에러가 뜹니다.

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

해결책을 검색해 다음을 입력해보니,

use mysql;

update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';

FLUSH PRIVILEGES;

다음과 같은 에러가 자꾸 나타나면서 해결을 못하고 있습니다.:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(''), plugin='mysql_native_password' where user='root'' at line 1

어떻게 하면 mysql 연동 에러를 해결할 수 있을까요? 도움주시면 정말 감사하겠습니다. ㅜㅜ

7
Tay 프로필

ajax script error Tay 2017.10.10
XMLHttpRequest cannot load http://127.0.0.1:3000/ajax_send_email. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. 버튼을 클릭하면 위에 에러를 보게 됩니다. 어떻게 처리하면될가여?

0
(주)넥스트이노베이터 프로필

express 를 이용하여 웹서버를 구성하였을 경우 사용자가 url에 직접 타이핑 할 경우..? (주)넥스트이노베이터 2017.08.22
안녕하세요. nodejs를 이용한 백엔드 프로그래밍에 대해서 잘 보고 있습니다. 다름이 아니라 express서버를 사용하여 웹서버 구성 시 질문과 같이 이용자가 메인페이지를 거치지 않고 직접 타이핑하여 중간으로 진입하였을경우  어떻게 차단이 가능한지요? ex)   login.ejs에서 로그인한 사용자만 서비스 이용이 가능해야 하는데        localhost:3000/service/list  를 직접 타이핑하여 진입 할 경우 차단 방법이 있는지요?

0
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강좌들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스