Javascript 从节点中的外部.js文件调用构造函数

Javascript 从节点中的外部.js文件调用构造函数,javascript,node.js,Javascript,Node.js,我实际上有一个html文件,它加载了几个js文件: <script type="text/javascript" src="jop.js"></script> <script type="text/javascript" src="script.js"></script> script.js文件内容(原始行): 我试图使用'require'调用script.js中的构造函数“PROPModule(PROP);”,但这些方法都不起作用。这样: sc

我实际上有一个html文件,它加载了几个js文件:

<script type="text/javascript" src="jop.js"></script>
<script type="text/javascript" src="script.js"></script>
script.js文件内容(原始行):

我试图使用'require'调用script.js中的构造函数“PROPModule(PROP);”,但这些方法都不起作用。这样:

script.js(在node.js行中修改):

我对js和node非常陌生,我已经搜索了好几天没有成功的解决方案


请问您对如何调用此构造函数有何建议或想法?

.js文件在浏览器和nodejs中的读取方式不同。 因此,您的.js(为浏览器编码)很可能不会在nodejs环境中读取,反之亦然

为了使我的js文件与两者兼容,我使用以下脚本包装了我的js代码:

/** jop.js */
; (function (window, factory) {
    if (typeof exports === 'object') {
        module.exports = factory();     // NodeJs Environment
    } else {
        window.jop = factory();         // Browser Environment
    }
}(this, function () {
    return (function (window) {
        "use string";

        let PROPModule = function (Module) {
            console.log('PROPModule is called');
        }

        // exposed functions
        return { myFunc };
    }(this));

}));
这是在NodeJS环境中导入它的方式:

script.js

const jopjs = require('./jop')
这是在浏览器环境(内部或外部)中导入的方式:


log('window.jop=factory();:'中的“jop”字,jop.PROPModule());

您是否在jop.js中导出PROPModule函数?我这样做了,但最初它不是这样工作的:
module.exports=PROPModule我刚刚尝试了另一种导出函数的方法
module.exports.PROPModule=PROPModule现在它可以工作了。
var jopjs = require('./jop.js');
var PROP = {};
PROP['preRun'] = prerun;  
PROP['onRuntimeInitialized'] = main;
PROP['TOTAL_MEMORY'] = 64*1024*1024;
jopjs.PROPModule(PROP);    

ReferenceError: jopjs is not defined
/** jop.js */
; (function (window, factory) {
    if (typeof exports === 'object') {
        module.exports = factory();     // NodeJs Environment
    } else {
        window.jop = factory();         // Browser Environment
    }
}(this, function () {
    return (function (window) {
        "use string";

        let PROPModule = function (Module) {
            console.log('PROPModule is called');
        }

        // exposed functions
        return { myFunc };
    }(this));

}));
script.js

const jopjs = require('./jop')
<script type="text/javascript" src="./app/lokidb-seed.js"></script>
<script>
  console.log('The "jop" word in window.jop = factory();: ', jop.PROPModule());
</script>