2016-11-15 41 views
-1

私はファイルを読む必要があるプログラムに取り組んでいます。私はこのように始まり機能を持つファイルindex.jsありますjavascriptはnode.jsを使って別のjsファイルから関数を取得できますか?

function read(file){ 

    var lines = parse(file); 

を、私はparse(file)機能を持つ別のファイルserver.jsを持っている:

function parse(file){ 

    var fs = require('fs'); 

    var contents = fs.readFileSync(file, 'utf8'); 
    return contents.split('\n'); 

} 

index.jsファイルは、プロジェクトフォルダ内publicフォルダ内にありますserver.jsのように:

/project 
...server.js 
.../public 
    ...index.js 

それ。 私の質問はなぜserver.jsファイルから機能を読み取ることができないのですか、どのようにすればいいですか?

+0

「module.exports」を使用してexpあなたは 'require'を使ってそれをインポートすることができます。 –

+0

ようこそスタックオーバーフロー! [ask]をお読みください。重要なフレーズ:「検索と研究」と「あなたがそれを自分で解決することを妨げた困難を説明する」 –

答えて

0

module.exports = function parse(file){ 

    var fs = require('fs'); 

    var contents = fs.readFileSync(file, 'utf8'); 
    return contents.split('\n'); 

} 

経由index.js内の関数をエクスポートし、

var parse = require('./public') 
0

はい、

エクスポートすることができ、チェックアウトnodejs modules、との輸入部品のようなserver.jsでそれをインポートしますファイル間のコード。あなたのケースでは

、それはあなたがする必要がどのような

// ./index.js 

var myFunction = require('./public') 

// ./public/index.js 

module.exports = function iCanBeAnonymousOrNamed() { 
    return 'do something' 
} 
+0

index.jsを実行しようとすると「Uncaught ReferenceError:require is not defined」と表示されます... index.jsはnode.jsではありません... –

0

だろうあなたのparse機能あなたがmodule.exports = parseModuleを使用してエクスポートすることができますオブジェクトのメソッドを作るである - そして、あなたのindex.jsファイル内からrequireを使ってこのモジュールをインポートできます。つまり、var parseModule = require('./parseModule')

関連する問題