2017-09-27 19 views
0

の内側に使用した:私は、ベストプラクティスは、このようなvar fs = require('fs')、どのように使用するかなどの変数を必要と宣言することは何かわからないよしかし基本JS - 私はそのように宣言JSクラス持ってVARを必要と宣言し、クラス

class Useful { 
    someFunction(index) { 
    //Does something with index 
} 

をそれ - すなわち:

  • var fs = require('fs')
  • class宣言内またはその外側である必要があり、それは私が使用する使用するthis

ありがとうございました。

UPDATE - 以下のコメント - この正しい

const fs = require('fs') 

    class Useful { 
     someFunction(index) { 
     //Does something with index 
     fs.writeFile(......) 
    } 
+0

クラスブロック内の変数宣言は許可されていません(現在)。前に置いて、常に 'const'を使います。どのようにfsにアクセスしたいですか? –

+0

@Jonasw私はそのクラス内の関数の中で 'fs'を使用したいです ' '' createNewUser(トークン){ //// fs.writefileを使う '' ' – userMod2

+0

はい、それをクラス宣言の外に置きましょう。完了しました。 –

答えて

0

class Useful { 
    someFunction(index) { 
    const fs = require("fs"); 
    } 
} 

B

const fs = require("fs"); 
class Useful { 
    someFunction(index) { 

    } 
} 

は、これら二つの間の重要な違いをTheresの:Aは、FSはsomeFunctionが呼び出されるたびにロードされます。これはパフォーマンスに悪影響を及ぼし、実質的な利点はありません。したがって、Bを使用してください。

+0

ありがとうございます。また、私は 'const nUser = require( '../helpers/ newUserCreator')'のようなものを持っていて、 'newUserCreator'ファイルにはこれがあります: ' '' module.exports = { createNewUsers:function(numberOfAccountsToCreate){.. ..} '' '' 'createNewUsers'関数を正しく呼び出すにはどうすればいいですか? – userMod2

+0

@ userMod2多分' nUser.createNewUsers() '? –

+0

node.jsモジュールには1回だけロードされ、その他のすべての要求はキャッシュからのものです。したがって、AとBの間には1つの違いがあり、 'someFunction'が呼び出されると、最初のモジュールがロードされます。 – alexmac

1

1)すべてのモジュールは、宣言は、理想的にファイルの先頭にあるべき必要があります。

const useful = require('useful') 

class foo .... 

2)は、「これは」クラス自体を指し、あなたはその

class Useful (importedModule) { 
    constructor(importedModule) { // constructor syntactic sugar 
     this.module = importedModule; 
    } 

のようにそれを必要とする場合ので、あなたは明示的にあなただけのクラスプロパティとしてクラスのコンストラクタ内でインポートされたモジュールを添付する必要があります3)es6ではモジュールをインポートすることもできます。

import somethingUseful from 'module_or_./filePath_where_something_useful_is_kept' 

4)esとletとconstはvarの代わりになります。

関連する問題