본문 바로가기

개발 일기/NodeJS

(10)
[Node] 서버에서 html로 보내기 #ejs 서버를 따로 쓰지만 가끔 해당 주소로 들어갈 경우 페이지 화면을 보여줘야 하는 경우가 있다. ex) 인증 완료 페이지 이메일 인증 완료 시 쿼리문이 아닌 완료 페이지를 보여주고 싶었다. ejs를 사용해 html 파일을 보여줄 것이다. app.js import express from "express"; import ejs from "ejs"; const app = express(); app.set("view engine", "ejs"); // ejs 설정 app.engine("html", require("ejs").renderFile); // ejs 설정 export default app; 이렇게 설정을 하고 router 부분으로 가서 실행해 주면 끝이다. router.js import express fr..
[Node] EC2에 MongoDB 설치하기 #mongo#EC2 - 참고 Install MongoDB Community Edition on Amazon Linux — MongoDB Manual docs.mongodb.com - 설치하기 기본설정 $ sudo vi /etc/yum.repos.d/mongodb-org-4.2.repo *참고 뒤에 버전은 항상 달라질 수 있음. 참고에 버전을 참고하자 ㅋㅋ vi를 통해 파일을 하나 만들고 파일에 [mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.2.a..
[Node] EC2에 nginx 설치하기&포트변경 #nginx#EC2 - ec2에서 nginx 설치 방법 yum을 사용해서 설치하려고 하면 amazon-linux-extras를 사용하라는 안내 문구가 나온다. "nginx1.12" and "nginx1" 둘 중 하나 골라서 사용하면 된다. $ sudo amazon-linux-extras install nginx1 설치 후 $ sudo service nginx start 로 실행해준다. ec2 인스턴스 -> 보안 그룹 -> 인바운드 에 꼭 포트 허용을 해주자!! nginx의 기본 포트인 80번 포트를 열어주었다. ec2주소로 접속하면 nginx가 반겨준다. 이러면 일단 설치는 성공적... - 내가 원하는 포트로 접속하기 nginx의 기본 포트는 http의 80번 포트이다. 이 포트로 접속을 하면 내가 쓰는 포트로 연결해줘야한..
[Node] EC2에 Node.js 설치하기 #npm#EC2 https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html 자습서: Amazon EC2 인스턴스에서 Node.js 설정 docs.aws.amazon.com 자습서에 있는 내용이다. 1. nvm 먼저 설치 $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash - 참고 nvm-sh/nvm Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - nvm-sh/nvm git..
[Node] babel-node가 권한 문제로 실행이 안될 경우 #@babel-node sh: /home/ec2-user/폴더이름/node_modules/.bin/babel-node: Permission denied 권한이 없다고 나오는 경우가 있다. $ chmod 755 /home/ec2-user/폴더이름/node_modules/.bin/babel-node 이렇게 권한을 바꿔주면 바로 실행된다!!
[MongoDB] 페이징 처리 와 populate #mongoose 보통 게시판에는 쓴 사람의 정보가 들어간다. 그래서 게시판 스키마에는 유저의 ObjectID가 들어가 있다. import mongoose from "mongoose"; const BoardSchema = new mongoose.Schema({ uid: { type: mongoose.Schema.Types.ObjectId, ref: "user"//내 DB에 있는 컬랙션 이름 }, title: { type: String }, content: { type: String }, create_date: { type: Date, default: Date.now }, comments: [ { uid: { type: mongoose.Schema.Types.ObjectId, ref: "user" }, comment: { ..
[Node] 메일 인증 암호화 #crypto #encoding 이전에 쓴 양방향 암호화 코드를 사용하려고 봤더니 오류가 나서 확인해본 결과 기존에 쓰던 createCipher()와 createDecipher()가 곧 사라질 거라는 소식이 들렸다. 그래서 이번에 새로운 createCipheriv()와 createDecipheriv() 썼는데 아직 잘 모르겠다. 정리하면서 공부해 보자. 알고리즘에는 여러 가지가 있는데 공홈에서는 aes192와 aes-128-ccm정도가 쓰여있었다. 다른 사이트를 찾다가 본 알고리즘이 aes-256-cbc여서 이걸로 해보기로 했다. 256이어서 그런지 key도 256bit가 필요하다. 아니면 오류남... 32글자의 암호키가 필요하다. 여기서는 항상 같은 키로 복호화도 필요하기 때문에 고정값을 사용했다. iv는 처음 보는 녀석이었다. 그래..
[Node] 서버에서 메일 보내기&메일 인증 #nodemailer 메일 보내기 - 설치하기 $ npm install nodemailer - 예시 var nodemailer = require('nodemailer'); var transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'youremail@gmail.com', pass: 'yourpassword' } }); var mailOptions = { from: 'youremail@gmail.com', to: 'myfriend@yahoo.com', subject: 'Sending Email using Node.js', text: 'That was easy!' }; transporter.sendMail(mailOptions, function(e..