인프런 커뮤니티 질문&답변

김윤진님의 프로필 이미지
김윤진

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

노드버드 프로젝트 구조 갖추기

질문 부탁드립니다

작성

·

797

0

안녕하세요

express 서버 만들들고

app.use('', express.static(path.join(__dirname, 'static')));

html을 static 폴더 안에 넣어서 경로 예측 힘들게 말들었고

시퀄라이즈로 mysql과 연동했습니다

그런데 시퀄라이즈가 static 폴더 밖에 있어 html에 

시퀄라이즈.js를 가져올 수 없습니다

다른 방법이 있을까요?

답변 4

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

시퀄라이즈는 서버에서 쓰는겁니다. 프론트에서는 서버 라우터에 요청을 보내서 라우터에서 시퀄라이즈 작업을 하는 겁니다.

김윤진님의 프로필 이미지
김윤진
질문자

프론트에서 axios로 입력값을 라우터로 보내서 users라우터에서 mysql로 보내는 것이 맞나요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 맞습니다~

0

김윤진님의 프로필 이미지
김윤진
질문자

감사합니다!

html

<div class="join__main__phone">
<h3>휴대전화 번호</h3>
<input type="number" placeholder="'-' 구분없이 입력해주세요" id="number" onchange="printNum()" />
<button>인증번호 전송</button>
</div>

js

function printNum(){
userNum = document.getElementById('number').value;
console.log(userNum);
}

입니다

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

저 js 파일을 어떻게 가져오시는 건가요? 그게 중요한 겁니다.

김윤진님의 프로필 이미지
김윤진
질문자

<script src="../login_js/join.js"></script>

html파일 하단에 입력했습니다

혹시  axios 불러오는 코드를 위에 스크립트 코드보다 아래에 배치해야 하나요??

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

axios 요청 보내는 코드를 실행할 때 printNum 스크립트가 아직 불러와지지 않은 상태같은데요. 순서를 조정해보세요.

김윤진님의 프로필 이미지
김윤진
질문자

넵 감사합니다

이거랑 별개의 질문 하나만 부탁드립니다

구글 node.js 라이브러리 설치하고

npm install googleapi --save


html
<script type="module" src="./auth.js"></script>
js
let { google } = require("googleapis");

이렇게 하면
Uncaught ReferenceError: require is not defined
이 오류가 발생하는데 왜그러는지 알 수 있을까요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

위에도 말씀드렸습니다. 프론트에서는 npm 패키지 못 씁니다.

김윤진님의 프로필 이미지
김윤진
질문자

감사합니다!

0

김윤진님의 프로필 이미지
김윤진
질문자

넵 감사합니다 

html의 정보를 axios를 통해 서버로 보낼려합니다

html에서 onclick 으로 js파일에서 유저 정보를 받습니다

그런데 html에서

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

이거 추가하면 html의 onclick이 undefined이고

npm으로 axois추가해서

js파일에서 import axios from 'axios';

하면 js파일의 함수들이 undefined입니다

axios를 통해 서버로 보내주는 js파일에만 type을 모듈로해서

import axios from 'axios';

이렇게 하면

 Failed to resolve module specifier "axios". Relative references must start with either "/", "./", or "../".

이 오류가 뜹니다

어떻게 해결할 수 있을까요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

html에서는 npm 패키지를 import 할 수 없으므로 script 사용하는 것이 맞습니다. html의 onclick이 undefined가 될 리가 없습니다. 분명 코드에 문제가 있는 겁니다.

김윤진님의 프로필 이미지
김윤진
질문자

html에 

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

추가하면

onchange, onclick이 이런 오류가 발생합니다

printNum은 

<input type="number" placeholder="'-' 구분없이 입력해주세요" id="number" onchange="printNum()" />

입니다

uncaught ReferenceError: printNum is not defined

    at HTMLInputElement.onchange 

왜이렇게 뜰까요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

printNum을 어디에 선언하셨는데요? axios 추가하면서 printNum스크립트를 제거하신 건 아닌가요?

0

김윤진님의 프로필 이미지
김윤진
질문자

혹시 nunjucks나 ejs 안 쓰고 html 파일만 불어오게 할 수 있나요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

그냥 res.sendFile(HTML경로) 하시면 됩니다.

김윤진님의 프로필 이미지
김윤진
질문자

html로 sendFile 할 경우 router 사용은 못하는 건가요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

router 안에서 res.sendFile 하는 건데요?

김윤진님의 프로필 이미지
김윤진
질문자

html로 sendFile 할 경우 router를 분리하는 것이 불가한가요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

라우터 분리라는 게 어떤 말씀이신지 모르겠습니다 ㅠㅠ 그냥 하던대로 하시면 됩니다.

김윤진님의 프로필 이미지
김윤진

작성한 질문수

질문하기