从节点中的请求中提取JSON数据

时间:2015-06-22 10:16:31

标签: javascript json node.js

我已经启动了一个带有节点服务器的新网站,以便更熟悉node.js,并且我将数据发布到服务器,但我无法弄清楚如何在请求中读取JSON数据:

客户请求:

    wksSource.Copy(After:=wkbExperiment.Sheets(wkbExperiment.Sheets.Count))
    wksTarget = wkbExperiment.Sheets(wkbExperiment.Sheets.Count)

服务器处理程序:

 function addSymptom(name) {

        $.ajax({
            type: 'POST',
            url: '/addSymptom',
            data: {
                symName: name
            },
            success: function (data) {
                listSymptoms();
            },
            contentType: "application/json",
            dataType: 'json'
        });

    }

为什么request.body未定义?我应该在请求正文中读取'symName'字段吗?

1 个答案:

答案 0 :(得分:3)

请务必在node.js上添加bodyParser模块..

如果您使用的是Express 3.x / 4.x,则只需确保包含bodyParser:

  1. Express 3.x

    app.use(express.bodyParser({limit : '50mb'}));
    
  2. Express 4.x

  3. 包文件中的

    "body-parser": "~1.0.0",
    

    或者运行npm-install body-parser

    然后在你的node.js服务器中:

    var bodyParser = require('body-parser');
    
    // create our app
    var app = express();
    
    // instruct the app to use the `bodyParser()` middleware for all routes
    app.use(bodyParser());
    

    链接到示例: http://code.runnable.com/U0sU598vXio2uD-1/example-reading-form-input-with-express-4-0-and-body-parser-for-node-js  3.没有快递

    如果由于某种原因你决定不使用express,你将需要绑定到套接字的数据处理程序来读取数据。

    以下是关于此事的文章: http://blog.frankgrimm.net/2010/11/howto-access-http-message-body-post-data-in-node-js/