Javascript 在NodeJS';s required()
如何使用Node的require()函数访问包含在其中一个脚本中的函数 --main-js.js-- --web-notification.js-- 另外,我将如何在其他所需脚本中使用此函数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
--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);
}