뎁스노트 / 프레임워크 / Node.js

프레임워크

질문node app.js 실행 오류

안녕하세요. 다름이 아니라 노드를 깔아서 코드 작성 후 명령어를 실행했는데 아무런 반응 없이 바로 터미널이 꺼집니다. 먼저 시도하거나 확인해본 방법은 1. 노드 버전 확인 2. 환경변수 편집 확인 3. 3000 port 실행 확인 4. express 설치 확인 등등 시도할만한 방법은 모두 시도했으나 "node app.js" 명령어 실행 시 사진처럼 서버가 실행되지 않고 무반응으로 끝나버립니다. app.js 코드는 대략 이렇게 작성했고, 노트 삭제 후 재설치 등 가능한 방법은 모두 시도했으나 여전히 서버가 안 켜져서 시행착오 끝에 질문을 올립니다. 무엇이 문제인지, 어떻게 해야 서버를 다시 킬 수 있는지 궁금합니다. const expres = require("express"); const app = express(); const port = 3000; app.get("/", (req, res) => {   res.send("Hello world!"); }); app.listen(port, () => {   console.log("http:/localhost:3000"); });
338
5
0
닥터핸
닥터핸·2025-01-20
먼저, const expres = require("express"); 에서 express인데 expres라고 오타가 있는 것 같습니다. 위 오타를 확인해보시고 그래도 문제가 발생한다면  아래와 같이 nodemon을 사용하여 앱을 띄우면 디버깅 하기가 수월합니다. (nodemon을 사용하면 코드가 변경될 때마다 서버가 코드를 재실행합니다) npx ...
kimhokimho· 2년전

Node.js: 드디어 LTS로 Require ESM을 기본 활성화하다!

최근 개발자들에게 신선한 충격을 안겨준 Node.js의 업데이트, "Require ESM 기본 활성화" 소식을 들으셨나요? 이 변화는 Node.js 생태계에 큰 변화를 예고합니다. 그 이유와 자세한 내용을 함께 알아보겠습니다. 새로운 시대를 여는 Require ESM Node.js 18 버전부터 ESM(ECMAScript Module)을 공식적으로 지원했지만, 여전히 CommonJS 방식과 병행해야 했습니다. 이제는 LTS(Long Term Support) 버전에서 Require 문법을 사용해도 ESM이 기본으로 활성화됩니다. 이 업데이트가 중요한 이유는? ESM의 기본 활성화 ESM은 JavaScript의 표준 모듈 시스템으로, CommonJS보다 빠르고 현대적인 방식입니다. 브라우저 환경에서도 사용되는 표준이므로 서버와 클라이언트 간 일관성을 유지할 수 있습니다. 개발자 경험의 향상 CommonJS와 ESM 간의 혼란을 줄이고, 코드의 가독성과 유지보수를 쉽게 만듭니다. 더 많은 라이브러리와 프로젝트가 ESM으로 전환될 가능성을 열었습니다. 성능 최적화 ESM은 런타임에서 더 빠르고 효율적으로 동작하며, Tree Shaking 같은 최적화가 가능하게 됩니다. 업데이트 적용 방법 기본 설정 확인하기 LTS 버전에서는 별도의 설정 없이도 ESM을 사용할 수 있습니다. 하지만 기존 프로젝트에서 CommonJS를 사용하고 있다면, 다음과 같은 단계를 통해 안전하게 전환할 수 있습니다. 패키지 업데이트: npm install --save-dev node@lts package.json에 type 추가: { "type": "module" } 이 설정을 통해 해당 프로젝트가 ESM 기반으로 동작함을 명시합니다. 파일 확장자 확인: ESM에서는 .js 파일이 기본적으로 모듈로 처리됩니다. CommonJS 파일은 .cjs 확장자를 사용하는 것이 좋습니다. 코드 변경 필요 사항 ESM으로 전환할 때는 기존 require 문법을 import로 변경해야 합니다. 예: // 기존 방식 (CommonJS) const fs = require('fs'); // 새로운 방식 (ESM) import fs from 'fs'; 결론 이번 업데이트는 단순한 기능 추가 이상의 의미를 담고 있습니다. CommonJS에서 ESM으로 넘어가는 흐름은 단순히 기술적인 변화가 아니라, JavaScript의 미래를 정의하는 방향성을 나타냅니다. 특히, 클라이언트와 서버 모두에서 동일한 모듈 시스템을 사용할 수 있다는 점은 개발자들에게 큰 이점으로 작용할 것입니다. 하지만 기존 프로젝트와의 호환성을 유지하기 위한 노력이 필요합니다. 중급 이상의 개발자라면 이번 기회를 통해 ESM 전환을 고민하고, 프로젝트를 현대화하는 데 집중해보시길 추천합니다. 출처: Node.js Blog - Require ESM 기본 활성화
560
1
0
닥터핸닥터핸· 5년전

[Node.js] Multer-S3를 이용한 이미지 업로드

[Node.js] Multer-S3를 이용한 이미지 업로드 AWS S3 버킷에 이미지 파일을 저장하고, DB엔 그 버킷의 이미지 파일 경로(이미지 주소)를 저장하고, 서버는 이 경로를 클라이언트로 응답합니다. velog.io 아마존의 AWS의 S3에 이미지를 업로드하고 업로드한 URL 경로는 DB에 저장하고자 하는 경우 Multer-S3와 AWS-SDK 모듈을 이용하여 구현하는 방법을 설명합니다😊 const multer = require('multer'); const multerS3 = require('multer-s3'); const aws = require('aws-sdk'); aws.config.loadFromPath(__dirname + '/../config/s3.json'); const s3 = new aws.S3(); const upload = multer({ storage: multerS3({ s3: s3, bucket: 'YOUR BUCKET NAME', acl: 'public-read', contentType: multerS3.AUTO_CONTENT_TYPE, key: function (req, file, cb) { cb(null, `${Date.now()}_${file.originalname}`); }, }), }); module.exports = upload;  
2.4K
2
0
닥터핸닥터핸· 6년전

Node.js 16 출시

Node.js 16 available now We are excited to announce the release of Node.js 16 today! Highlights include the update of the V8 JavaScript engine to 9.0, prebuilt… nodejs.medium.com Apple Silicon (M1)을 위한 바이너리 지원 V8 버전이 9.0으로 성능 향상됨 promise를 반환하는 타이머 지원 무슨 말인고 하니 이런게 가능함 import { setTimeout } from 'timers/promises'; async function run() { await setTimeout(5000); // 이런 게 가능해짐 console.log('Hello, World!'); } run(); npm 7.10.0 포함
1.3K
2
0
닥터핸닥터핸· 6년전

Deno 1.9 버전 릴리즈

Deno 1.9 Release Notes Deno 1.9 adds a new native HTTP/2 web server, a vastly improved op infrastructure, import completions in the LSP, an interactive permission prompt, blob url support. deno.com Node.js의 단점을 개선해 가고 있는 Deno의 1.9 버전이 릴리즈 되었습니다. 달라진 점은 네이티브 HTTP/2 웹서버 : 빠르고, 정확하고, HTTP의 모든 기능 지원 serde_v8을 통한 Rust 호출 속도 향상 Blob URL 지원과 향상된 fetch 함수 로컬, 원격, 저장소에 있는 모듈을 import로 자동 완성 대화형 권한 관리 프롬프트 - 권한을 모두 알 필요없이 대화형 프롬프트에 대답하는 형식 지원
1.4K
0
문종영문종영· 7년전

질문node JS 에서 (또는 Java 등 어디에서라도) 실제 사용자에게 보여줄 오류 메시지를 처리하는 올바른 방법이 무엇일까요?

저는 스타트업에서 일하는 개발자입니다. 지금까지 저희는 서버에서 직접 오류 메시지를 생성하여 유저에게 보내고 있었습니다. 저는 이 방법이 오류 메시지를 상수로 정의하여 클라이언트와 서버 양쪽에서 관리하는 번거로움과 소비 비용을 절감시킬 수 있다고 생각했습니다. 그러나 새로운 시니어 개발자님께서는 오류 메시지는 반드시 상수로 관리되어야 한다고 말하셨습니다. 아직 이해가 잘 안 됩니다. 왜 그런 것일까요? 아래는 원래 사용하던 오류 처리 코드의 예시입니다.   module.exports.setEmailForManagerInvitation = asyncWrap(async (req, res) => { const { employeeInfos } = req.body; if (!employeeInfos || !employeeInfos.length) { throw new HttpCodeException(400, 'No employee information was received.'); } ... some codes ... if (user.email) { throw new HttpCodeException(400, `The account already exists. (Employee name: ${employee.name})`); } ... some codes ... return { code: 200, message: 'E-mail settings for employees to be set up as administrators are complete.', }; });  
2.1K
1
1
0
kimho
kimho·2020-03-26
질문하신 내용을 정확하게 이해하지는 못했습니다만 본인께서 작성하신 코드처럼 상수와 메시지를 정의해도 크게 문제될 것 같지는 않습니다. 시니어 개발자님께서 요구하신 방법이 구체적으로 어떻게 하는 방법을 말씀하신 것인지 알려주시면 좀 더 자세히 답변드릴 수 있을 것 같습니다.
프릿즈프릿즈· 8년전

질문node JS 입문용 책, 강좌 추천해주세요

입문용 강좌나 책 뭐가 좋을까요?  현재 스프링 개발자입니다. 
2.4K
1
0
kimho
kimho·2019-04-01
https://opentutorials.org/course/3332 입문 강좌로 괜찮은 것 같습니다.
kimhokimho· 9년전

Building Real-Time Web Applications using wolkenkit

Building Real-Time Web Applications using wolkenkit Learn to build real-time web applications using wolkenkit and how to add authentication to them. auth0.com Learn to build real-time web applications using wolkenkit and how to add authentication to them...
1.7K
1
1
0
·2021-01-22
아마야아마야· 9년전

NodeJS에서 letsencrypt와 greenlock으로 SSL(https) 적용하기

(NodeJS) letsencrypt와 greenlock으로 SSL(https) 적용하기 안녕하세요. 이번 시간에는 SSL 적용 방법에 대해 알아보겠습니다. letsencrypt를 사용해서 90일짜리 공짜 SSL을 적용해봅시다. 90마다 갱신하는 것이 귀찮기 때문에 greenlock-express라는 모듈을 사용해서 자동 갱신도 적용하겠습니다.. (사실 g www.zerocho.com 안녕하세요. 이번 시간에는 SSL 적용 방법에 대해 알아보겠습니다. letsencrypt를 사용해서 90일짜리 공짜 SSL을 적용해봅시다. 90마다 갱신하는 것이 귀찮기 때문에 greenlock-express라는 모듈을 사용해서 자동 갱신도 적용하겠습니다. 제 블로..
3.5K
0
무린무린· 9년전

Node.js 또 분기된다··· 이번엔 '정치적' 이유

Node.js 또 분기된다··· 이번엔 '정치적' 이유 Node.js 테크니컬 커미티 멤버에 대한 이의 제기로 촉발된 Node.js 커뮤니티 내부의 논쟁이 결국 자바스크립트 런타임 엔진의 새로운 분기 www.ciokorea.com
2.2K
1
0