将数据从一个node express应用程序传递到相同/不同域中的另一个

t5fffqht  于 2023-05-28  发布在  Node.js
关注(0)|答案(1)|浏览(129)

我需要将一些数据从一个node express应用程序A传递到另一个可能/可能不在同一域上运行的B。我想使用301重定向来实现这一点。我了解到,你可以通过一个connect-flash节点模块来实现这一点,但它只能在同一个应用程序中间件上工作。任何建议或参考将是有益的。谢谢。

// App A
var express = require('express');
var session = require('express-session');
var cookieParser = require('cookie-parser');
var flash = require('connect-flash');
var app = express();

app.use(require('body-parser').json());
app.use(cookieParser('secret'));
app.use(session({cookie: { maxAge: 60000 }}));
app.use(flash());

app.post('/forceRedirect', function (req, res, next) {
    var dataRecieved = {
        requestHeaderVersion:req.get('version'),
        requestBodyParam:req.body.firstname,
        path:req.originalUrl
    };

    console.log('Data logging on node app A: ' +     JSON.stringify(dataRecieved));

    req.flash('testdata', 'it worked');    
    return res.redirect(301, 'http://mydomain/test') // Pass to     app  B that is on different domain

})

app.listen(3000, function () {
  console.log('Node 1 listening on port 3000!')
})
//App B - running on different domain

var express = require('express')
var session = require('express-session');
var cookieParser = require('cookie-parser');
var flash = require('connect-flash');
var app = express()

app.use(require('body-parser').json());
app.use(cookieParser('secret'));
app.use(session({cookie: { maxAge: 60000 }}));
app.use(flash());

app.get('/test', function (req, res) {
  console.log('Node app B is hit! and recieved data from node app A is :' + JSON.stringify(req.flash('testdata')));
  res.end();
})

app.listen(4000, function () {
  console.log('Node app 2 listening on port 4000!') 
})
mcvgt66p

mcvgt66p1#

一种方法是如果你真的想要301,
//APP A

return res.redirect(301, 'http://mydomain/test/data1/data2')

//APP B

app.get('test/:data1/:data2', function (req, res) {
    console.log(req.params.data1);
    console.log(req.params.data1);

});

编辑

更好的办法是

res.redirect(307, 'http://mydomain/test');

这将把POST的原始内容重定向到另一个POST,大概是在APP B中。

相关问题