React 和 NodeJS:如何将数据从服务器发送到客户端?

尼克拉斯

我想将响应数据从服务器发送到客户端。我使用带有 NextJS 和 React 的 NodeJS 服务器。

我在服务器上使用这个函数:

function addEmailToMailChimp(email) {
    var request = require("request");
    var options = {
        method: 'POST',
        url: 'https://XXX.api.mailchimp.com/3.0/lists/XXX/members',
        headers:
        {
            'Postman-Token': 'XXX',
            'Cache-Control': 'no-cache',
            Authorization: 'Basic XXX=',
            'Content-Type': 'application/json'
        },
        body: { email_address: email, status: 'subscribed' },
        json: true
    };
    request(options, function (error, response, body) {
        //if (error) throw new Error(error);
        return body; //return the body Value
    });
    return request();
}

在嵌套request()函数中,我想返回主体值......该函数将从这一点开始运行:

server.post('/', (req, res) => {
            var MailChimpError = addEmailToMailChimp(req.body.email);
            console.log(MailChimpError); 
            res.send(MailChimpError); //send data to client
            res.end("success!");
        })

我尝试将返回正文值保存在变量中,MailChimpError并尝试在服务器控制台中显示此变量。但它不起作用。这是第一个问题。

第二个问题:MailChimpError如果退出,我想将变量发送到客户端以显示一些错误。在服务器上我使用函数res.send(MailChimpError)handleSubmit()在客户端的功能如下所示:

handleSubmit() {
        const email = this.state.email;
        this.setState({email: ""});
        fetch('/', {
            method: 'POST',
            headers: {
              'Accept': 'application/json',
              'Content-Type': 'application/json'
            },
            body: JSON.stringify({email:email}),
          }).then((res)=> console.log(res.body)) //display the body value from server
      }

我怎样才能做到这一点?我在 Node.js 环境中的经验很少。如果您能向我展示具体的解决方案,我将不胜感激。谢谢您的回复。

苏雷什·普拉贾帕蒂

下面是使用函数响应的正确方法,addEmailToMailChimp因为它是一个异步函数。更多例子,你可以参考

我改为addEmailToMailChimp接受 acallback然后我将其request作为第二个参数传递给异步操作完成后将执行。

var request = require("request");
function addEmailToMailChimp(email, callback) {

    var options = {
        method: 'POST',
        url: 'https://XXX.api.mailchimp.com/3.0/lists/XXX/members',
        headers:
        {
            'Postman-Token': 'XXX',
            'Cache-Control': 'no-cache',
            Authorization: 'Basic XXX=',
            'Content-Type': 'application/json'
        },
        body: { email_address: email, status: 'subscribed' },
        json: true
    };
    request(options, callback);
}

在您的server.js文件中

server.post('/', (req, res) => {
    addEmailToMailChimp(req.body.email, (error, response, body) => {
        // This is the callback function which is passed to `addEmailToMailChimp`
        if(error){
            console.log('error', error);
            res.status(500).send({msg: 'Sorry, something went wrong :('})
        }
        else{
            res.status(200).send(response); //send data to client
        }

    });
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

React登录页面(客户端)和Spring Boot /安全性(服务器端)

如何将信息从NodeJS服务器发送到客户端?

Apple Pay和Swift如何将PKPaymentToken发送到服务器

如何将数据从React客户端应用发送到Spring Boot后端应用?

如何使用webpack和vue-cli将服务器端变量发送到vue实例?

如何将React错误发送到服务器并进行记录?

如何将“数据”和“结束”事件从cURL发送到nodejs的HTTP服务器?

如何将客户端数据发送到服务器端

如何将文件/图像从React发送到Node.js服务器

服务器和客户端身份验证:如何从服务器创建Firebase身份验证令牌并将其发送到Web客户端?

使用POST请求将数据从Node服务器发送回React客户端

Socket.io Node Js服务器和React js客户端未连接

如何将React发送到Express服务器获取请求传递ID

使用Signalr和Java客户端将json对象发送到.net服务器

如何使用Pusher将用户的存款和取款详细信息从客户端发送到Node.js(快速)服务器?

将数据发送到NAT和防火墙后的非浏览器客户端的最佳方法?

将服务器的日期和时间发送到客户端计算机

如何使用Koa2和koa-router将REST api的GET响应发送到React客户端?

使用React-Engine和Express到客户端的服务器端变量

使用React / redux和Express将客户端参数传递到服务器端(EMPTY_RESPONSE错误)

如何将数据从服务器端 (Express.js) 发送到客户端 (React.js)?

如何将 React.js 组件从我的 node.js 发送到我的客户端?

在服务器生成响应之后和将其发送到客户端之前设置断点

如何将表单数据从客户端发送到服务器

如何将 UInt 和其他类型转换为 String Hex 以将数据发送到服务器?C#

通过nodejs和express将请求进度发送到客户端

Datastax Astra netlify 和 react-app,我应该使用 nodejs 客户端还是 REST API 来实现无服务器功能?

如何将保存在护照中的用户从后端服务器发送到 React 前端服务器?

如何使用登录表单将数据从 React 发送到 Node 服务器?