首页 > 解决方案 > 将数据从一个节点 js 发送到另一个节点并在另一个节点 js 上显示发送的数据

问题描述

我正在尝试将数据从一个节点 js 服务器发送到另一个节点并显示发送的信息。示例服务器 A 和服务器 B。服务器 A 向服务器 B 发送数据,服务器 B 将显示服务器 A 发送的信息,并将响应返回给服务器 A。基本上我的程序就像一个支付页面和一个银行服务器页面。将付款详情发送到银行服务器,如果银行服务器点击接受,它将发送回付款页面并继续交易。

这是我的付款页面代码:

var postData = JSON.stringify({ user: cardDetails });

    const options = {
        hostname: 'localhost',
        port: 3001,
        path: '/bank',
        method: 'POST',
        headers: {
            'content-type': 'application/json',
            'accept': 'application/json'
        }
    };

    const httpreq = http.request(options, (res) => {
        res.setEncoding('utf8');
        res.on('data', (chuck) => {
            console.log(`BODY: ${chuck}`);
        });
        res.on('end', () => {
            console.log('No more data in response.');
        });
    });

    httpreq.on('error', (e) => {
        console.error(`problem with request: ${e.message}`);
    })

    //write data to request body
    httpreq.write(postData);
    httpreq.end();

这是我的银行服务器端代码:App.js

var express = require("express");
var path = require("path");
var bodyParser = require("body-parser");
var express = require('express');
var app = express();
var serverPort = 3000;
var httpServer = require('http').Server(app);

// ejs template path
app.set("views", path.join(__dirname, "server/views/pages"));
// view engine setup
app.set("view engine", "ejs");

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

//import order tracking
var bank = require('./server/controllers/bank');

app.get("/bank-server", bank.bankSystem);
app.post("/bank", bank.add);

console.log("Connected!")
app.listen(3001);

这是我的 bank.js 代码:

exports.add = function (req, res){
    console.log(req.body.user.cardName);
    res.sendStatus(200);

};

exports.bankSystem = function (req, res){
    console.log("Bank Page Working!")
        res.render('bankServer', {
            name: "empty"
        })
    }

最后是我的 bankServer.ejs 代码:

<h1>Connection Worked!</h1>
<p>Card Name is <%= name %></p>

这是支付节点 js 的输出。CardName 输入 = Raysonkira1 这是银行服务器节点 js 的输出。收到卡名

标签: node.jshttpejs

解决方案


在 Bank.js 中,您只是发送状态而不是响应。

exports.add = function (req, res){
    console.log(req.body.user.cardName);
    res.sendStatus(200);
    // send the response data here, for example
    res.send("Hello from the bank!");
};

参考


推荐阅读