Javascript 파일에서 module.exports를 선언 할 위치에 대한 규칙


11

module.exportsJavascript / Node.js 모듈 파일을 선언 하지 않아야하는 규칙이 있습니까?

파일의 시작 부분에 있어야합니다 :

module.exports = Foo;

function Foo() {
    this.bar = 'bar';
}

Foo.prototype.getBar = function() {
    return this.bar;
}

또는 파일 끝에 있어야합니다.

function Foo() {
    this.bar = 'bar';
}

Foo.prototype.getBar = function() {
    return this.bar;
}

module.exports = Foo;

기술적 차이가 없다는 것을 알고 있습니다. 첫 번째 예제는 선언 게양 때문에 완벽하게 유효합니다 .

그래서 모범 사례가 있는지 궁금합니다.


마지막에 남겨두면 얻을 수있는 이점 중 하나는 함수 객체 ( var Foo = function()...)를 사용할 수 있지만이를 선언하는 또 다른 방법은 직접 ( module.exports.Foo = function()...) 있다는 것입니다.
Marcelo

나는 그냥 할 수 var Foo = function Foo()...있고 잘 작동합니다.
Henrique Barcelos

맨 위에두면 장점 : 모듈의 API를 한눈에 볼 수 있습니다 (아래로 스크롤하지 않아도 됨).
Adam Zerner

답변:


4

확실히 일반적으로 사용되는 많은 옵션이 있습니다. 그러나 그것은 매우 성가신 일입니다. 나는 그것이 모든 상황에서 작동하기 때문에 끝에 두는 것을 좋아합니다. 내가 module.exports로 멋진 일을 할 때마다 더 좋은 방법이있을 것입니다.

가장 중요한 것은 항상 그렇듯이 일관성이 있다는 것입니다. 팀에서 일관성을 유지하십시오.

편집 : 같은 개념으로, 나는 require처음에 모든 진술을하고 싶습니다 . 내 Node.js 파일은 항상 다음과 같습니다.

"use strict";

const fs = require("fs");
const MyClass = require("./MyClass");


class MyOtherClass extends MyClass {}

module.exports = MyOtherClass;

환상적이지 않고, 당신이 기대하는 방식. 파일 당 하나의 클래스, 클래스 당 하나의 파일. 포함 된 클래스의 이름을 딴 파일은 대문자 / 소문자로 구성됩니다. yaioc (면책 조항 : 나는 저자이며, 이것은 뻔뻔한 광고입니다) 예를 들어이 노드 모듈을 살펴보십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.