2016-05-24 8 views
0

Ich möchte meine benutzerdefinierten Module im Browser verwenden. zum Beispiel habe ich eine AppConfig.js ModuleKnoten js browserify Implementierung

'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; 

Ich möchte diese Module im Browser verwenden. Zu diesem Zweck habe ich das browserify-Modul installiert.

npm install -g browserify

dann auf App-Verzeichnis gehen und diesen Befehl ausführen

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

dann füge ich diese Zeile auf meiner HTML-Datei.

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

jetzt möchte ich diese Module auf meiner Javascritp-Funktion verwenden.

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

Ich nenne getDistanceCondition() Funktion, aber ich einen Fehler nehmen:

Uncaught (in Versprechen) Typeerror: fs.readFileSync ist keine Funktion (...)

wie behebe ich kann dieses Problem ? können Sie mir einige Informationen geben.

+0

Was denkst du kannst du im Browser mit dieser mongodb Verbindungszeichenfolge tun? BTW Sie wahrscheinlich nicht wollen, dass alle Benutzer es sehen ... –

+0

Ich werde mongodb Verbindungszeichenfolge von diesem Modul entfernen das ist nicht wichtig. Zuerst möchte ich diesen Code erfolgreich ausführen. . . – AsimTurgut

Antwort

0

fs kann nicht durchsucht werden. da der Konfigurationsdatei JSON ist jedoch, und Sie verwenden nur fs, diese Datei zu lesen, können Sie es ersetzen require() durch Verwendung:

var configuration = require(configurationFile); 

mit dem zusätzlichen Vorteil, dass Browserify Ihre Konfigurationsdatei in das Bündel hinzufügen wird .

+1

Das wird nicht das Ende sein. Zwischen dem Versenden der Konfigurationsdatei und dem Verbinden von mongodb sieht dies wie der Start eines XY-Problems aus. –

+0

@ DenysSéguret Ich vermisste den MongoDB Teil. Wenn das OP nicht beabsichtigt, die (begrenzte) REST-Schnittstelle von MongoDB zu verwenden, wird dies tatsächlich problematisch werden ... – robertklep