Node.js Nodejs中的返回状态导致网络请求失败

Node.js Nodejs中的返回状态导致网络请求失败,node.js,react-native,express,Node.js,React Native,Express,这是一个关于Nodejs 10.16和express 4.16.4中返回的新手问题,前端是react native 0.59。以下是Nodejs服务器上的代码,查询成功后返回状态200: router.post('/new', [auth_deviceid, auth_userinfo, auth_role(['admin', 'eventer', 'messager'])], async (req, res) => { //prepare obj msg.... try

这是一个关于Nodejs 10.16和express 4.16.4中返回的新手问题,前端是react native 0.59。以下是Nodejs服务器上的代码,查询成功后返回状态200:

router.post('/new', [auth_deviceid, auth_userinfo, auth_role(['admin', 'eventer', 'messager'])], async (req, res) => {
    //prepare obj msg....

    try {
        await msg.save();
        msg.user_name = req.body.alias;
        msg.user_avatar = req.user.user_data.avatar;
        const io = req.app.get("io");
        const socket_id = req.body.socket_id;
        const socket = io.sockets.connected[socket_id];
        const room = msg.event_id.toString();
        socket.join(room);
        socket.to(room).emit("event message", msg); 
        console.log("after emit to room : ", room); //<<<==this line shown in console screen
        return res.status(200); //<<<=== hang here with no error thrown. But instead  res.status(200).send("I am ok") is working.
    } catch (err) {
        console.log("Error in saving/braodcasting a new message", err);
        return res.status(400).send(err.message);
    };

});
在控制台屏幕上,收到以下错误:

09-25 17:19:20.325 15181 15252 I ReactNativeJS: 'Chat message URL : ', '{"_device_id":"0cfce7b7e86fa397","sender_id":1,"sender_grpmember_id":1,"alias":"jc","socket_id":"z-8JjwQvKo6ed57KAAAB","data":{"msg_body":"hello","upload_content_info":""},"event_id":1,"_grpmember_id":1,"_group_id":"1"}'
09-25 17:19:20.345 15181 15252 I ReactNativeJS: In GiftedChat render :
09-25 17:20:35.554 15181 15252 I ReactNativeJS: 'Error in saving message : ', { [TypeError: Network request failed]
09-25 17:20:35.554 15181 15252 I ReactNativeJS:   line: 24115,
09-25 17:20:35.554 15181 15252 I ReactNativeJS:   column: 31,
09-25 17:20:35.554 15181 15252 I ReactNativeJS:   sourceURL: 'http://10.0.2.2:8081/index.delta?platform=android&dev=true&minify=false' }

为什么返回res.status200导致网络请求失败的错误?

您的请求大约需要15秒,正如您所指出的,返回res.status200;只需为响应设置http状态代码,就可以使用res.json、res.send或res.end来完成请求

在这种情况下,我想你只需要发送一个成功的http状态码是200


您可以使用res.sendStatus200;res.sendStatus是实现res.status和res.send而不是res.status200的缩写。

可能是超时或服务器无返回错误。它没有使用res.status200发送任何内容,请改用res.sendStatus200。
09-25 17:19:20.325 15181 15252 I ReactNativeJS: 'Chat message URL : ', '{"_device_id":"0cfce7b7e86fa397","sender_id":1,"sender_grpmember_id":1,"alias":"jc","socket_id":"z-8JjwQvKo6ed57KAAAB","data":{"msg_body":"hello","upload_content_info":""},"event_id":1,"_grpmember_id":1,"_group_id":"1"}'
09-25 17:19:20.345 15181 15252 I ReactNativeJS: In GiftedChat render :
09-25 17:20:35.554 15181 15252 I ReactNativeJS: 'Error in saving message : ', { [TypeError: Network request failed]
09-25 17:20:35.554 15181 15252 I ReactNativeJS:   line: 24115,
09-25 17:20:35.554 15181 15252 I ReactNativeJS:   column: 31,
09-25 17:20:35.554 15181 15252 I ReactNativeJS:   sourceURL: 'http://10.0.2.2:8081/index.delta?platform=android&dev=true&minify=false' }