我已经启动了一个带有节点服务器的新网站,以便更熟悉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'字段吗?
答案 0 :(得分:3)
请务必在node.js上添加bodyParser模块..
如果您使用的是Express 3.x / 4.x,则只需确保包含bodyParser:
Express 3.x
app.use(express.bodyParser({limit : '50mb'}));
Express 4.x
:
"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/