gpt4 book ai didi

javascript - 在两个 Node.js 路由之间交换数据的更好方法

转载 作者:太空宇宙 更新时间:2023-11-04 02:26:34 24 4
gpt4 key购买 nike

如果两个 Node.js 路由之间有一种优化的通信方式,那将会是有益的?我主要使用 Express,但我不知道有 Express 模块可以提供此类功能。我不确定我是否缺少正确的框架或正确的 NPM 脚本。我知道这个功能可以通过简单的 Ajax 来实现,但我正在寻找更干净的解决方案,例如 websockets。我使用socket.io,但它似乎专注于客户端和服务器之间的通信,而不是两个服务器之间的通信。

更新 - 我想要实现什么?不要将我需要的所有请求放在一个文件中,例如:

router.post('/entode', function(req, res) {
var word_rf = req.body.word1;
if( /^[a-zA-Z]+$/g.test( word_rf ) && word_rf.length<18 ) {
entode.entode_function_rf(word_rf, function (res1) {
io.sockets.emit('series_results', res1);
res.send('done');
});
} else {
io.sockets.emit('error_rf', 'incorrect input');
res.send('done');
}
});
//-------------------------
router.post('/yandex_short', function(req, res) {
var word_rf = req.body.word1;
...
});
//-------------------------
router.post('/yandex_long', function(req, res) {
var word_rf = req.body.word1;
...
});

我更喜欢这样的东西:

router.post('/', function(req, res) {
var word_rf = req.body.word1;
var aPromise = new Promise(function(resolve,reject) {
makeRequestFn('./some_route/'+word_rf,function(returnedData){
resolve(returnedData)
});
});
aPromise.then(function(data) {
io.sockets.emit('series_results', data);
res.send('done');
});
//The other routes stay inside this scope
});

这样我就不需要需要这些模块,因为我将逻辑直接传输到其他文件。

最佳答案

抱歉,我迟到了,但我认为您想要的是进程间通信。另外,不要根据路线进行推理,而是根据微服务进行思考。所以你最终得到的是解耦的迷你应用程序,它们可以通过 websocket、消息队列、http 等在它们之间共享数据。

阅读此内容 excellent article来自 NGINX 博客。它是指导您完成构建自己的微服务过程的系列文章的一部分。

干杯,

关于javascript - 在两个 Node.js 路由之间交换数据的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30049742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com