简体   繁体   English

节点js browserify实现

[英]node js browserify implementation

I want to use my custom modules on the browser. 我想在浏览器上使用我的自定义模块。 for example I have a AppConfig.js modules 例如我有一个AppConfig.js模块

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

I want to use this modules on the browser. 我想在浏览器中使用此模块。 for this purpose I installed browserify module . 为此,我安装了browserify模块。

npm install -g browserify npm install -g browserify

then go to app directory and run this command 然后转到应用程序目录并运行此命令

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

then i add this line on my html file . 然后我将这一行添加到我的html文件中。

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

now ı want to use this modules on my javascritp function . 现在我想在我的javascritp函数上使用此模块。

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

I call getDistanceCondition() function but ı take an error: 我调用getDistanceCondition()函数,但是ı报错:

Uncaught (in promise) TypeError: fs.readFileSync is not a function(…) 未捕获(承诺)TypeError:fs.​​readFileSync不是函数(…)

how can ı fix this problem ? 我该如何解决这个问题? can u give me some information. 你能给我一些信息吗?

fs can't be browserified. fs不能被浏览。 However, since your configuration file is JSON, and you're only using fs to read that file, you can replace it by using require() : 但是,由于您的配置文件是JSON,并且仅使用fs读取该文件,因此可以使用require()替换它:

var configuration = require(configurationFile);

With the added advantage that Browserify will add your configuration file to the bundle. 利用附加优势,Browserify会将您的配置文件添加到捆绑软件中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM