728x90 반응형 All Side/Runtime > NodeJS19 [NodeJS] 검색기능 만들기 (1) MongoDB Query 규모가 크지 않은 서비스라면 굳이 검색엔진을 구축할 필요는 없습니다. MongoDB Query를 가지고 간단한 검색기능을 알아보도록 하겠습니다. 1) Regex 아마 가장 많이 사용하는 방법이 정규식이라고 생각합니다. 정규식을 이용하면 쿼리 중에 문자열의 패턴을 검색 가능합니다. 정규식은 패턴을 일련의 문자와 일치시키는 일반화된 방법입니다. .find({ title: { $regex: "강아지" } }) 원하는 필드에 찾고자 하는 데이터를 $regex로 걸어줍니다. 그러면 title이라는 필드 안에 "강아지"라는 단어를 가진 데이터들을 모두 가지고 옵니다. 예를 들어, title이라는 데이터에 "강아지" 말고도 "강아지산책", "사료강아지" 등 강아지가 포함된 모든 데이터들이 검색됩니다. 부분 텍스트 검.. 2022. 8. 19. [ErrorFix] Axios multer로 파일 전송시 req.files에 나오지 않는 오류 해결 Axios로 파일을 보낼때 파일이 req.files에 나오지 않는 현상이 나왔다. 원래라면 이렇게 req.files를 할 때 나와야하는데 아예 빈 값이 나와 당황스러웠다. const formData = new FormData(); formData.append("script", data); axios.post(`http://${process.env.LOGICKIT_URL}/module/add`, formData, { headers: { 'Content-Type': 'multipart/form-data' } }) .catch((error) => { console.log(`fail 😱`, error.message) }) 작성한 코드를 한번 살펴보면 이상한 점이 하나도 보이지 않는다. 원인을 찾기 위해 여러가지.. 2022. 8. 11. [npm] NodeJS에서 환경변수 사용하기 - dotenv 새로운 Repo에서 환경변수를 쓸 일이 있어서 process.env.URL 이라고 작성했는데 undefined가 떴다. 원인은 node 명령어로 실행시키는 파일에서는 .env파일을 인식할 수 없다고 한다 ❗️ 그래서 별도의 모듈인 dotenv를 설치하여 인식할 수 있게 해준다. npm install dotenv --save 사용법은 우선 dotenv 모듈을 설치한다. require("dotenv").config(); 환경변수를 사용할 파일에서 환경 변수를 불러오는 코드를 작성해준다. console.log("URL:", process.env.URL); 그 다음 원래대로 process.env로 원하는 환경변수를 호출해주면 됩니다. 2022. 8. 10. npm 명령어 모음 npm 설치 npm i npm dev 설치 npm i --sava-dev npm 삭제 npm uninstall 2022. 5. 30. [NodeJS] API 문서 툴 Swagger 사용해서 API 문서 자동화 (+ swagger-autogen) 회사를 다니면서 프론트와 백엔드가 협업하기 위해서 가장 필요한 요소가 API 문서라는 것을 알았습니다. 클라이언트-서버 간의 통신을 정리하는 것이 API 문서입니다. 근데 이걸 아주 조금이라도 잘못 쓰거나 누락시키면 큰일이 됩니다. 그렇기 때문에 API 문서를 작성해주는 툴들이 존재하고 그중에서 가장 유명한 Swagger입니다. Swagger를 찾아보니 일일이 주석을 작성해야해서 굳이 이걸 써야 하는가에 대해 고민했습니다. 귀찮은 것을 싫어하는 개발자답게 좀 더 찾아보니 swagger를 자동 생성해주는 라이브러리가 있더라고요! swagger-autogen을 이용해서 한 번 API 문서를 자동으로 만들어보도록 하죠. 1. 서버(nodemon 포함)를 멈추고 라이브러리 설치 - 매우 중요 ⭐️⭐️⭐️⭐️⭐️.. 2022. 5. 26. [NodeJS] VM (Virtual Machine) - 가상머신 모듈 VM이란? 물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경이다. 즉, VM를 이용하여 OS 운영체제에서 윈도우나 리눅스를 돌릴 수 있다는 것이다. 하지만 무거운 운영체제를 포함하고 있기 때문에 경량화 한 것이 컨테이너이다. NodeJS는 원래 V8엔진을 사용한다. NodeJS내에서 엔진을 쉽게 액세스 할 수 있는데 그 방법이 VM모듈에서 제공한다. const express = require("express") const vm = require("vm") const context = { express: express, } vm.createContext(context) const code = ` const app =.. 2022. 2. 28. [Node.js] 기본세팅 + 시작코드 프로젝트 새로 시작할 때마다 찾기 귀찮아서, 내가 볼려고 만든 초반에 해줘야할 기본세팅과 시작코드이다. npm i express mongoose jsonwebtoken -S npm init -y 프로젝트에 필요한 모듈을 터미널에서 설치한다. jsonwebtoken은 JWT 사용할 경우 설치해주기... // app.js const express = require("express"); const bodyParser = require("body-parser"); const mongoose = require("mongoose"); mongoose.connect("mongodb://localhost/{DB이름써주기}", { useNewUrlParser: true, useUnifiedTopology: true, }.. 2022. 2. 12. [Node.js] Validation 유효성 검사 + Joi 라이브러리 Validation 유효성 검사란 말그대로 validation은 어떤 것을 검증하는 것이다. 어떤 요청에 필요한 모든 데이터가 정상적으로 들어왔는지 안 들어왔는지를 확인하는게 validation이다. Joi 대부분 유효성 검사를 하게 되면 if문을 자주 사용한다. 하지만 중복적으로 사용하는 코드가 많기에 월마트 개발자들이 유효성 검사를 해주는 라이브러리 Joi를 만들었다. Joi 공식 문서 : https://joi.dev/api/?v=17.6.0 joiSite ## Build Setup joi.dev const Joi = require('joi'); const postUserSchma = Joi.object({ nickname: Joi.string().required(), email: Joi.string.. 2022. 2. 12. [Node.js] 미들웨어 정의, 유형 미들웨어란 클라이언트에게 요청이 오면 응답하기 위해 목적에 맞게 처리해주는 함수이다. 예를 들어, route를 생성할 때마다 공통된 처리를 하고 싶을 때 어떻게 해야할까? 요청이 들어올 때마다 이 요청이 어떤 유저의 요청인지 인증검사를 해야할 수 있다. 이럴때 코드를 작성하게 되면 route를 하나 만들때 마다 매번 유저 인증을 확인하는 코드를 작성해야한다.. 이러한 반복 작업 혹은 정의한 route에 오기 전에 중간에서 미리 처리해야할 것들을 정의하는 것이 미들웨어다. express.static, express.json, express.urlencoded 같은 함수도 미들웨어를 만들어주는 함수이다. express.static(path) : path에 입력한 경로에 있는 파일을 그대로 서빙해주는 기능을 .. 2022. 2. 12. 이전 1 2 3 다음 728x90 반응형