将请求发布到node.js服务导致超时

花生酱

深入研究node.js并开发了一个简单的服务:

// set up ======================================================================
var express = require('express');
var app = express();                               // create our app w/ express
var port = process.env.PORT || 8080;                // set the port

var bodyParser = require('body-parser');
//var methodOverride = require('method-override')
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

app.use(function (req, res, next) {
    //the code hits this point!
    var data = '';
    req.on('data', function (chunk) {
        data += chunk;
    });
    req.on('end', function () {
        req.rawBody = data;
        next();
    });
    //console.log(data);
});
//app.use(methodOverride());
// routes ======================================================================
require('./routes.js')(app);

// listen (start app with node server.js) ======================================
app.listen(port);
console.log("App listening on port " + port);

routes.js

var _ = require('underscore');

module.exports = function (app) {
    app.post('/', function (req, res) {
        var Validator = require('jsonschema').Validator;
        var v = new Validator();
        var jso = req.rawBody;
        var newjso = JSON.parse(req.rawBody);
        var schema={
            "description": "A payload",
            "type": "object"
        };

        var result = v.validate(newjso,schema);

        console.log('----------------------payload--------------------------------------')
        console.log(newjso);
        console.log('------------------end payload--------------------')

        if (result.errors.length > 0) {
            res.setHeader('content-type', 'application/json');
            res.status(400);
            res.json({
                "error": "Could not decode request: JSON parsing failed"
            });
            console.log('------------------ERROR!!!--------------------')
        }
        else
        {
            var resp = _.filter(_.where(newjso.payload, {drm: true}), function (item) {
                return item.episodeCount > 0
            });

            var newArray = [];
            resp.forEach(function (item) {
                var newItem = _.pick(item, 'image', 'slug', 'title');
                newItem.image = _.propertyOf(newItem.image)('showImage');
                newArray.push(newItem);
            })

            res.setHeader('content-type', 'application/json');
            res.status(200);
            res.json({response: newArray});
        }
    })
}

当我将这个或其他json发布到邮递员时:

{
  "payload": [
    {
    }]
}

指定Contenttypeheader = application / json时似乎正在超时。为什么会超时,如何在node.js程序中解决此问题?邮差

mscdex

这是因为bodyParser.json()已经解析了整个请求,因此end永远不会在您的自定义中间件中触发。同样,我不明白你为什么要试图捕获原始请求时,你正在做的是将它传递给JSON.parse(),这是bodyParser.json()已经这样做。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何发出将数组发布到服务器的请求?

来自分类Dev

Node.js请求库-将text / xml发布到正文?

来自分类Dev

Clojure:我正在使用http-kit将请求发布到服务器,但对我来说效果不佳

来自分类Dev

JavaScript:如何将任意请求正文发布到服务器?

来自分类Dev

将请求发布到Node-http-proxy Node.js时发生套接字挂断

来自分类Dev

Node.js-多个发布请求

来自分类Dev

无法使用C#HttpClient将数据发布到Node.js服务器

来自分类Dev

由于node.js的延迟响应,导致连接超时

来自分类Dev

使用HttpUrlConnection将请求发布到服务器

来自分类Dev

将JSON请求发布到FCM服务器不起作用

来自分类Dev

MongoDB服务器选择超时与Nginx,Node.js

来自分类Dev

将代码发布到生产IIS服务器是否会干扰运行http请求?

来自分类Dev

如何发出将数组发布到服务器的请求?

来自分类Dev

将来自Azure node.js Web应用程序的请求发布到另一台服务器。请求的问题:连接EACCES错误

来自分类Dev

Node.js请求库-将text / xml发布到正文吗?

来自分类Dev

将请求的python跨域发布到DWR服务器

来自分类Dev

使用Flask将请求发布到Web服务器

来自分类Dev

大量的导入作业到WCF服务导致超时

来自分类Dev

使用来自C#的HTTP请求将NULL JSON发布到PHP服务器

来自分类Dev

将请求发布到node.js服务导致超时

来自分类Dev

角度js将请求发布到nodejs json。键未定义表达4

来自分类Dev

通过Ajax将嵌套对象发布到Node.js服务器返回未定义

来自分类Dev

如何正确地将图像发布到alchemy node.js服务器?

来自分类Dev

用Javascript将数组发布到Node.js

来自分类Dev

将超时发布100ish KB到Azure应用服务MVC

来自分类Dev

如何将json传递给Node.js请求发布方法?

来自分类Dev

AJAX 请求导致超时

来自分类Dev

如何使用 TIdHTTP 将 UTF-8 编码的请求发布到 PHP 服务器?

来自分类Dev

将发布请求从 Swift 4 发送到 Node.js

Related 相关文章

  1. 1

    如何发出将数组发布到服务器的请求?

  2. 2

    Node.js请求库-将text / xml发布到正文?

  3. 3

    Clojure:我正在使用http-kit将请求发布到服务器,但对我来说效果不佳

  4. 4

    JavaScript:如何将任意请求正文发布到服务器?

  5. 5

    将请求发布到Node-http-proxy Node.js时发生套接字挂断

  6. 6

    Node.js-多个发布请求

  7. 7

    无法使用C#HttpClient将数据发布到Node.js服务器

  8. 8

    由于node.js的延迟响应,导致连接超时

  9. 9

    使用HttpUrlConnection将请求发布到服务器

  10. 10

    将JSON请求发布到FCM服务器不起作用

  11. 11

    MongoDB服务器选择超时与Nginx,Node.js

  12. 12

    将代码发布到生产IIS服务器是否会干扰运行http请求?

  13. 13

    如何发出将数组发布到服务器的请求?

  14. 14

    将来自Azure node.js Web应用程序的请求发布到另一台服务器。请求的问题:连接EACCES错误

  15. 15

    Node.js请求库-将text / xml发布到正文吗?

  16. 16

    将请求的python跨域发布到DWR服务器

  17. 17

    使用Flask将请求发布到Web服务器

  18. 18

    大量的导入作业到WCF服务导致超时

  19. 19

    使用来自C#的HTTP请求将NULL JSON发布到PHP服务器

  20. 20

    将请求发布到node.js服务导致超时

  21. 21

    角度js将请求发布到nodejs json。键未定义表达4

  22. 22

    通过Ajax将嵌套对象发布到Node.js服务器返回未定义

  23. 23

    如何正确地将图像发布到alchemy node.js服务器?

  24. 24

    用Javascript将数组发布到Node.js

  25. 25

    将超时发布100ish KB到Azure应用服务MVC

  26. 26

    如何将json传递给Node.js请求发布方法?

  27. 27

    AJAX 请求导致超时

  28. 28

    如何使用 TIdHTTP 将 UTF-8 编码的请求发布到 PHP 服务器?

  29. 29

    将发布请求从 Swift 4 发送到 Node.js

热门标签

归档