【问题标题】:Passing data from one node express app to another in same/different domain将数据从一个节点快速应用程序传递到相同/不同域中的另一个节点
【发布时间】:2017-03-31 16:02:51
【问题描述】:

我需要将一些数据从一个节点快速应用程序 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!') 
})

【问题讨论】:

    标签: node.js express connect


    【解决方案1】:

    如果你真的想要一个 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 的原始内容重定向到大概在 APP B 中的另一个 POST。

    【讨论】:

    • 您好 Kalana,感谢您的回复,但是我无法向应用 B 发送键值对象。
    猜你喜欢
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 2013-10-14
    • 1970-01-01
    • 2018-05-22
    相关资源
    最近更新 更多