POST method로 데이터를 받았을 때, 해당 데이터를 다른 파일에 전달하기 물론 이 방법을 통한 데이터 전달은, 모든 브라우저에서 공통되어 보안에 취약하므로 추후에는 사용되지 않는다. exports를 2개 이상하기 export 하려는 파일에서 이렇게 exports객체에 전달하려는 객체 혹은 변수를 저장한다. exports.routes=router; exports.products=products; // 두개 이상 expors해주려면 exports 각각 객체에 저장해놓으면 된다. import하는 파일에서는 해당 객체를 받아온 후, 각 객체에 접근하면 된다. const adminData = require('./routes/admin'); app.use('/admin',adminData.routes); c..

파일구조 파악하기 리스폰스로 html파일을 보내고 싶은데, 해당 html 파일이 다른 폴더에 속해있다면 어떻게 해야할까? 간단하게 sendFile에 ../views/shop.html 라고 , 보내고자 하는 파일의 위치를 넣으면 될 것 같지만, 클라이언트는 시스템 파일 구조에 직접적으로 접근 할 수 없으므로 불가능하다. 따라서 파일 구조를 파악하고, 해당 파일 구조를 sendFile의 인자로 넣어야한다. 여기서 우리가 현재 response를 보내는 곳은 routes 폴더 하위의 admin.js파일과 shop.js파일이고, response로 보내고싶은 html 파일은 views폴더에 있다. routes폴더와 views폴더의 상위 폴더 (MODULE_) 는 같다. 이 때 아래와 같이 sendFile()에 인자..
const router = express.Router(); 기존에 app = express() 그리고 app.use()로 했던 라우팅을 모듈화하기 위해 사용한다. 기존 app과 동일하게 라우팅을 한다. 리퀘스트를 받는 메서드로 use, get, post 가 있는데, use는 get post를 모두 받고, get과 post는 같은 path를 받더라도 다른 라우팅으로 구분된다. 인자는 'path 이름'과 콜백 함수이다. 메인 앱에서는 해당 라우트 파일을 import 해주고, app.use인자로 import해준 변수를 넣어주면 된다. 인자 앞에 특정 path이름을 넣어주면, 해당하는 공통 path로만 시작하는 path로 보내지고, 그 path에 해당하는 라우트 get 이나 post에서는 url path 구분시..
미들웨어 express 내에서 중간 처리함수 미들웨어를 통해서 request를 받고, response를 한다. 미들웨어 함수는 코드 line 순서대로 실행된다. const express = require('express'); const app = express(); //express로부터 객체 생성 app.use('/' ,(req,res,next)=>{}); //미들웨어 함수 express.listen(3000); // 서버 생성 use는 app의 메서드로서, 새로운 미들웨어 함수가 적용된다. 콜백 함수가 미들웨어 함수가 되고 next는 또다른 콜백함수로서 다음 미들웨어 함수를 호출하게 해준다. '/' 인자는 해당 미들웨어 함수가 적용될 route를 가리킨다. 주의점 미들웨어 함수는 next()를 호출하..