无法在 node.js 内提出请求

Unable to make request in node.js

我在 CCAvenue 的控制器中使用以下代码,但出现错误

TypeError: request.on is not a function

下面是请求的代码

    request.on('data', function (data) {
        console.log("data is ----------------> " + data);
        body += data;
        encRequest = ccav.encrypt(body, workingKey);
        console.log("Enc request " + encRequest);
        formbody = '<form id="nonseamless" method="post" name="redirect" action="https://secure.ccavenue.com/transaction/transaction.do?command=initiateTransaction"/> <input type="hidden" id="encRequest" name="encRequest" value="' + encRequest + '"><input type="hidden" name="access_code" id="access_code" value="' + accessCode + '"><script language="javascript">document.redirect.submit();</script></form>';
    });

    request.on('end', function () {
        response.writeHeader(200, {
            "Content-Type": "text/html"
        });
        response.write(formbody);
        response.end();
    });

我使用 var request = require('request')

包含请求

编辑:

request.post("https://secure.ccavenue.com/transaction/transaction.do?command=initiateTransaction", {
        form: {
            encRequest: encRequest,
            access_code: accessCode
        }
    },
    function (error, response, body) {
        console.log(body);
    });

我在我的正文中收到一个 html 页面的响应。如何在 sail.js 框架中将其发送回浏览器?

编辑 2: 我也尝试过使用 sails.request 方法,但没有任何反应。

var payReq = {
        url: "https://secure.ccavenue.com/transaction/transaction.do?command=initiateTransaction",
        method: "POST",
        headers: {
            "Content-Type": "text/html"
            // "Content-Type": 'application/json'
        },
        // data : {
        //     encRequest: encRequest,
        //     access_code: accessCode
        // }
        data : `encRequest=${encRequest}&access_code=${accessCode}`

    }
    sails.request(payReq);

我认为您使用 Request 的方式不正确。您使用的这种模式适用于 HTTP/HTTPS 库。这是一个请求示例。

var request = require('request');

var options = {
    url: "https://httpbin.org/ip",
    method: "get"
};

console.log('Requesting IP..');
request(options, function (error, response, body) {
    if (error) {
        console.error('error:', error);
    } else {
        console.log('Response: Headers:', response && response.headers);
    }
});

本机 HTTP 和 HTTPs 库使用 request.on('data' .. 模式。示例如下:

https://www.twilio.com/blog/2017/08/http-requests-in-node-js.html

此页面包含使用 Request、HTTP、Axios 的示例。