Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在NodeJS';s required()_Javascript_Node.js_Function_Require - Fatal编程技术网

Javascript 在NodeJS';s required()

Javascript 在NodeJS';s required(),javascript,node.js,function,require,Javascript,Node.js,Function,Require,如何使用Node的require()函数访问包含在其中一个脚本中的函数 --main-js.js-- --web-notification.js-- 另外,我将如何在其他所需脚本中使用此函数 --report-tables.js-- 如果它不是模块.exports的一部分,则不能。例如: web notification.js function getURL(host, path) { ... } module.exports = exports = { getURL: getUR

如何使用Node的require()函数访问包含在其中一个脚本中的函数

--main-js.js--

--web-notification.js--

另外,我将如何在其他所需脚本中使用此函数


--report-tables.js--



如果它不是
模块.exports的一部分,则不能。例如:

web notification.js

function getURL(host, path) {
...
}

module.exports = exports = {
    getURL: getURL
};
var webnotis = require('./modules/web-notification.js');
webnotis.getURL(...);
main js.js

function getURL(host, path) {
...
}

module.exports = exports = {
    getURL: getURL
};
var webnotis = require('./modules/web-notification.js');
webnotis.getURL(...);

这叫做导出模块

样本来自:

创建一个文件./utils.js,并定义merge()函数,如下所示

  function merge(obj, other) {

      //...
  };

  exports.merge = merge;
现在,可以在
utils
中的另一个JS中访问合并函数,如下所示:

var utils = require('./utils');

utils.merge();
web-notification.js

     exports.getURL=function(host, path,cb) {
            var url=host+path;
             cb(null,url);
     }

我已经试过了,但是当我试图在另一个模块中访问它时,它告诉我该对象不存在。请参见编辑。@imperium2335:如果该函数是由另一个模块定义和导出的,则不能通过
exports.getURL
访问它<代码>导出
仅保存当前模块应导出的值。你必须通过你分配给模块的变量来访问它,就像freakish在回答中所说的那样。也许您应该再看看模块是如何工作的:。@FelixKling我已经阅读了它和示例,但当我从另一个模块中调用它时,它不起作用。@imperium2335:在web-notification.js中,您必须执行
exports.getURL=getURL
在main-js.js中,您必须执行
webnotis.getURL(…)
。就这样。如果这不起作用,则可能是因为您提供了错误的文件路径,或者模块中有错误,或者您确实做了一些不同的事情,所以无法加载模块。除了展示如何完成之外,我们没有什么可以做的。@FelixKling但在report-tables.js中我必须做什么?这也是main-js.js中需要的模块。
var utils = require('./utils');

utils.merge();
   var webnotis = require('./modules/web-notification.js')
      var host='urhost';
      var path='urpath'; 
      webnotis.getURL(host,path,function(err,res){
         if(!err){
               console.log('url is '+res);
            }

      });
     exports.getURL=function(host, path,cb) {
            var url=host+path;
             cb(null,url);
     }