Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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 如何从另一个正在运行的进程b.js调用正在运行的进程a.js的一个函数_Javascript_Node.js - Fatal编程技术网

Javascript 如何从另一个正在运行的进程b.js调用正在运行的进程a.js的一个函数

Javascript 如何从另一个正在运行的进程b.js调用正在运行的进程a.js的一个函数,javascript,node.js,Javascript,Node.js,我有一个nodejs项目,我有一个http服务器引导文件,我们称它为a.js,另一个是MQTT代理,我们称它为b.js 所以http服务器在express中,MQTT代理在aedes中,如果这有帮助的话。对于某些工作流,如果可能的话,我需要从mqtt broker的代码库调用http服务器代码库中的函数。 我已经知道我可以在http服务器中创建一个API,并使用一些http库从b.js调用该url。与axios类似,但这并不是我所认为的优雅之处。当a.js和b.js作为一个单独的进程运行时,是否

我有一个nodejs项目,我有一个http服务器引导文件,我们称它为a.js,另一个是MQTT代理,我们称它为b.js

所以http服务器在express中,MQTT代理在aedes中,如果这有帮助的话。对于某些工作流,如果可能的话,我需要从mqtt broker的代码库调用http服务器代码库中的函数。 我已经知道我可以在http服务器中创建一个API,并使用一些http库从b.js调用该url。与axios类似,但这并不是我所认为的优雅之处。当a.js和b.js作为一个单独的进程运行时,是否有其他方法可以跨它们进行交叉通信


谢谢

如果我理解正确,并且您希望a.js和b.js在同一环境中运行一个函数,那么您最好在另一个文件c.js中共享该特定调用,并将其像库或其他api一样引入

a、 js

b、 js

c、 js


看起来您希望一个nodejs实例对另一个nodejs实例进行远程过程调用(RPC)并检索结果。正如您所知,Web服务是一种规范的、可审核的、可记录的、可记录的、可测试的方法。如果您想使用其他RPC方案,则必须实现它。但我怀疑你最终会得到一个web服务的包装器。node-express上有许多分层的框架可以帮助您高效地创建web服务。(不要重新发明爆胎!)
const customFunction = require('c.js');
// Some express code
app.get('/', (req, res) => {
  // Server Specific Logic
  customFunction(...);
}); 
const customFunction = require('c.js');
// Other App Code
customFunction(...);
module.exports = function() { 
  // Shared function here brought in when other files require('c.js')
}