노드JS
Error: EACCES: permission denied
0|app | [Error: EACCES: permission denied, open 'logs/Munhak-2021-10-03-20.log'] { 0|app | errno: -13, 0|app | code: 'EACCES', 0|app | syscall: 'open', 0|app | path: 'logs/Munhak-2021-10-03-20.log' 0|app | } node app.js 로는 잘 되는데, pm2로 실행하면 오류가 걸리는 상황이었다. pm2의 권한 문제였고, root로 되어있는 파일을 일반 사용자가 건드리려다 보니 생긴 문제였다. 레퍼런스를 간신히 찾았지만 적용하긴 가성비가 안 맞았다. https://programmer.ink/think/eacces-permission-denied.ht..
Node.js 유저인증 미들웨어
Node.js 유저인증 미들웨어 const jwt = require("jsonwebtoken"); const User = require("../schemas/user"); module.exports = (req, res, next) => { const { authorization } = req.headers; const [authType, authToken] = (authorization || "").split(" "); if (!authToken || authType !== "Bearer") { res.status(401).send({ errorMessage: "로그인 후 이용 가능한 기능입니다.", }); return; } try { const { userId } = jwt.verify(authTok..
노드js 유저 인증하기
클라이언트 function getSelf(callback) { $.ajax({ type: 'GET', url: '/api/users/me', headers: { authorization: `Bearer ${localStorage.getItem('token')}`, }, success: function (response) { callback(response.user) }, error: function (xhr, status, error) { if (status == 401) { alert('로그인이 필요합니다.') } else { localStorage.clear() alert('알 수 없는 문제가 발생했습니다. 관리자에게 문의하세요.') } window.location.href = '/' }, }) } ..
Node.js - express(익스프레스), middleware(미들웨어), next
Node.js - express(익스프레스), middleware(미들웨어), next // 노드는 js기 때문에 똑같이 위에서 아래로 실행되는 구조 const express = require('express'); const { RequestHeaderFieldsTooLarge } = require('http-errors'); // 경로처리 할 때는 path가 쓰임 const path = require('path'); const app = express(); // 서버에다가 변수를 심는다고 생각 // port라는 속성을 3000으로 넣는 것 // 전역변수같은 느낌 app.set('port', process.env.PORT || 3000); // 미들웨어임 // 모든 서버에 다 작용함 // next라는 매..
Node.js ajax-post mongodb로 데이터 보내기
Nodejs ajax-post mongodb로 데이터 보내기 강의에도 없어서, 이것저것 뒤지고, 뒤지고 뒤지다가 간신히 했다. 어휴 진짜..ㅠ 내가 뭘 어떻게 한지도 모르겠넹.. 파이썬 flask로 했으면 바로 했을 텐데ㅠㅠ node는 클라이언트쪽을 잘 거치지 않고 서버쪽에서 뭔가 한 번에 내리고, 보내줘서 신기했다. or 작성자 비밀번호 제목 내용 저장하기! 각각 input의 id값들 person22 pwds name9 contents 를 ajax로 가져온다. function makeReview() { let names = $('#name9').val() let contents01 = $('#contents').val() let person00 = $('#person22').val() let pwd =..
Node.js moment 모듈
Node.js moment 모듈www.npmjs.com/package/moment momentParse, validate, manipulate, and display dateswww.npmjs.com // 모듈명 선언const moment = require("moment");// 현재시각만 나타내고 싶을 때 변수const times = moment().format("YYYY-MM-DD")// 각각 하루, 일주일, 한달 뒤console.log("today", moment().add(1,"day").format("YYYY-MM-DD"));console.log("today", moment().add(1,"week").format("YYYY-MM-DD"));console.log("today", moment()...
노드js - nodemailer 모듈
노드js - nodemailer 모듈 // require가 설치한 모듈을 불러옴 // 지금 설치된 nodemailer 모듈을 불러온 것 // 이제 nodemailer 기능들을 사용하게 됨 const nodemailer = require('nodemailer') const email = { host: "smtp.mailtrap.io", port: 2525, auth: { user: "b7acd369738df0", pass: "335d075b2dfae2" } }; const send = async (option) => { nodemailer.createTransportrt(email).sendMail(option, (error, info) => { if(error) { console.log(error) } ..