2016-05-24 12 views
0

私は自分のカスタムモジュールをブラウザで使いたいです。私はAppConfig.jsモジュールを持っています。node js browserify implementation

'use strict' 

var fs, configurationFile; 

configurationFile = './configs/appConfig.json'; 

fs = require('fs'); 

var AppConfig = function(){ 
function getMongoDbConnectionString() 
{ 
    var configuration = JSON.parse(
     fs.readFileSync(configurationFile) 
     ); 
    var connectionString= configuration.mongodbConnectionString; 
    return connectionString; 
} 

    function getDistanceCondition() 
{ 
    var configuration = JSON.parse(
     fs.readFileSync(configurationFile) 
     ); 
    var distance= configuration.distanceBetweenTwoArmatures; 
    return distance; 
} 

return { 

    getMongoDbConnectionString : getMongoDbConnectionString, 
    getDistanceCondition:getDistanceCondition 


}; 

} 

module.exports = AppConfig; 

私はこのモジュールをブラウザで使いたいと思います。この目的のために私はbrowserifyモジュールをインストールしました。

npm install -g browserify

その後、

このコマンドをappディレクトリに移動し、実行

browserify -r ./modules/AppConfig.js:AppConfig > ./public/javascripts/bundle.js

その後、私は私のhtmlファイルに次の行を追加します。

<script src="/javascripts/bundle.js"></script> 

今、私のjavascriptp関数でこのモジュールを使用します。

var Configuration = require('AppConfig'); 
var configuration = new Configuration(); 
var connectionString= configuration.getDistanceCondition(); 

私はgetDistanceCondition()関数を呼び出すが、私のエラーを取る:

キャッチされない(約束で)例外TypeError:fs.​​readFileSync関数(...)ではありません修正を私はできどのよう

この問題 ? 私にいくつかの情報を教えてもらえますか?

+0

mongodb接続文字列でブラウザで何ができると思いますか?あなたはたぶんすべてのユーザーに見せたくない... –

+0

このモジュールからmongodb接続文字列を削除しますが、これは重要ではありません。まず、このコードを正常に実行したいと思います。 。 。 – AsimTurgut

答えて

0

fsはブラウズできません。設定ファイルはJSONで、あなただけの、そのファイルを読むためにfsを使用しているので、あなたはrequire()を使用することによってそれを置き換えることができます。

var configuration = require(configurationFile); 

Browserifyがバンドルにコンフィギュレーションファイルを追加するという付加的な利点で。

+1

これは終わりではありません。設定ファイルの提供とmongodbの接続の間に、これはXY問題の始まりのように見えます。 –

+0

@DenysSéguret私はMongoDBの部分を見逃しました。 MongoDBの(限定された)RESTインターフェースを使用することがOPの意図でない限り、これは本当に問題になるでしょう... – robertklep