표준노드js사이트를 구글파이어베이스 Funtions서비스를 이용해 호스팅에 배포할 때
현재 무료 Spark 계정을 사용하면, 유료 Blaze (pay-as-you-go) plan 요금제를 사용해야 가능하다면서 되지 않는다.
그래도, 신규 폴더에 firebase-tools 를 global로 설치하고, firebase login 명령으로 로그인 후 firebase init 명령으로 사용할 서비스와 폴더 구조를 만든다.( firestore 데이터베이스, funtions 기능. hosting 호스팅 ) 세가지를 선택해야, 작업한 표준노드js를 funtion 으로 불러와서 실행 할 수 있게 된다.
- 이 글에서는 표준노드js 와 파이어베이스용 노드js 는 약자로 구분한다. NB(표준) / FB(파이어베이스)
- [FB]표준노드js 실행은 npm run start 로 실행한다면, 파이어베이스 실행 명령은 firebase serve 로 실행한다.(아래)
- [NB+FB]표준노드js 와 파이어베이스 호스팅의 노드js 폴더구조(아래)
- [FB]firebase deploy 전 위 처럼 소스를 복사 할 때 무조건 덮어쓰지 말고, package.json 파일은 dependencies 부분만 복사하고, firebase init 로 생성된 초기 index.js 파일대신(지웠음) 노드js앱의 server.js 파일을 하단 부분만 수정해 사용한다.(아래)
//module.exports = app; // 위 기존 노드js코드는 그대로 사용한다.
//app.listen(process.env.PORT || 80) //위 표준 노드js 코드 2줄 주석처리 후 아래 3줄 추가
//아래에서 파이어베이스 펑션기능으로 nodejsboard 이름을 정의하면 된다.
const functions = require('firebase-functions');
const nodejsboard = functions.https.onRequest(app);
module.exports = { nodejsboard };
- [FB]위에서 정의한 server.js 을 main-진입 파일로 만들려면, funtions 폴더의 package.json 을 아래 처럼 수정한다.(아래)
- [FB]위에서 server.js에서 정의한 nodejsboard 라는 이름은 파이어베이스.json 파일에서 사용된다.(아래 코드를 추가.)
- [NB+FB] 표준노드js 앱과 파이어베이스 호스팅에 돌아갈 앱 비교(아래)
- 로그인 후 게시판 화면이다. 단, Function을 사용한 파이어베이스 호스팅은 유료라서 사용못했으나, DB는 파이어베이스의 FireStore 라는 무료json데이터베이스를 사용한다.(아래)
- 위 구글 파이어베이스에서 지원하는 구글 로그인 인증을 사용할 때, 초기에 권한 문제가 발생 되었다. 원인은 아래 2군데에서 허용 도메인을 추가해 주고 나서 해결이 되었다.
- 파이어베이스의 Authentication > 승인된 도메인 추가 : https://console.firebase.google.com/project/nodejsboard-1129e/authentication/settings
- 구글 클라우드 콘솔의 사용자 인증 정보 : https://console.cloud.google.com/apis/credentials/oauthclient/54081620771-6gn2pmgpnvbptk8o568rmdrfqqg6m2s8.apps.googleusercontent.com?project=nodejsboard-1129e
현재 작업 중인 소스는 아래 깃 허브에 올려 놓았습니다.(단, 서비스계정키 파일은 보안때문에 제외 시켰습니다.)
1. 표준노드js : https://github.com/miniplugin/nodejsboard
2. 파이어베이스호스팅기반노드js : https://github.com/miniplugin/nodejsfirebase
3. K-PaaS 플랫폼 : https://digitalsolveup.kr/platform.do
4. 표준노드js 앱 결과확인 URL : https://nodejsboard.apps.emergency-cloudplatform.kr/
단, 위 표준노드js 앱은 기본 CRUD 만 된다. 앞으로 페이징처리, 검색기능, 파일업로드 기능을 추가할 예정 이다.
구글파이어베이스를 사용해 노드js 웹서비스 만들기_3/5 (0) | 2023.12.26 |
---|---|
구글파이어베이스를 사용해 노드js 웹서비스 만들기_2/5 (0) | 2023.12.25 |
[리액트+TS] vs [HTML+JS] 에서 외부 라이브러리/모듈 사용비교 (1) | 2023.11.08 |
TS-타입스크립트 확장 코딩 패턴 (0) | 2023.11.02 |
ES6 vs TS vs 리액트+TS 에서 클래스 사용 (0) | 2023.10.25 |
댓글 영역