添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

default export *Module '"http"' has no default export. 에러 해결

김까치 · 2023년 5월 14일
0

배경 지식

default export

ECMAScript 6 (ES6)부터 JavaScript에는 default export 라는 개념이 추가되었습니다. 모듈 내에서 default export 는 해당 모듈에서 기본적으로 내보내는 것으로, import 문에서 명시하지 않으면 default export 가 가져와집니다.

예를 들어, 다음과 같이 user.js 모듈에서 default export 를 정의하면:

// user.js
export default {
  name: 'John',
  age: 30

다음과 같이 main.js 모듈에서 import 할 수 있습니다:

// main.js
import user from './user.js';
console.log(user.name); // "John"
console.log(user.age); // 30

위 코드에서 user 변수에는 user.js 모듈에서 내보낸 default export 객체가 할당됩니다.

한 모듈에서 default export는 하나만 존재할 수 있으며, default export가 없는 모듈에서는 named export를 사용하여 내보낸 항목들을 가져와야 합니다.

default export는 모듈에서 주요 항목을 단일 값으로 정의할 때 유용합니다. 함수, 클래스, 객체, 배열 등 모듈에서 단일 값으로 내보낼 때 사용할 수 있습니다.

오류 해결

Module '"http"' has no default export. 에러 해결

Node.js에서 http 모듈은 기본 내보내기(default export)가 없기 때문에, import 문에서 default 키워드를 사용할 수 없습니다.

// 잘못된 방법
import http from 'http'; // 에러: Module '"http"' has no default export.
// 올바른 방법
import * as http from 'http'; // 모든 것을 가져옴
// 또는
const http = require('http'); // require 문으로 가져옴

위와 같이 http 모듈을 가져오는 방법은 두 가지가 있습니다: