我已经尝试使用Iron Router进行服务器路由,但这不起作用。然后我发现了WebApp,它似乎应该处理这个问题。
但是当我检查req对象时:
WebApp.connectHandlers.use("/api/add", function( req, res, next ) {
console.log( req );
res.writeHead(200);
res.end("Hello world from: " + Meteor.release);
});
我没有看到任何POST表单数据。没有身体财产,我在任何其他财产的任何地方都看不到数据。
如何访问此数据?我试图找出一些我认为相对简单的事情,我疯了......
答案 0 :(得分:6)
是的,我遇到了同样的问题。使用connect时,帖子正文不会自动出现在请求对象中。您可以使用像https://stackoverflow.com/a/24122700/5203563这样的中间件,或者像这样自己获取:
WebApp.connectHandlers.use("/api/add", function( req, res, next ) {
var body = "";
req.on('data', Meteor.bindEnvironment(function (data) {
body += data;
}));
req.on('end', Meteor.bindEnvironment(function () {
console.log(body);
res.writeHead(200);
res.end("Hello world from: " + Meteor.release);
}));
});
答案 1 :(得分:0)
您需要使用光纤才能使示例正常工作,或者我通常使用选择器,您可以在meteor add meteorhacks:picker
https://atmospherejs.com/meteorhacks/picker
webApp
它的包装器
并且您的示例应该以这种方式工作:
Picker.route('/api/add', function(params, req, res, next) {
console.log( req );
res.writeHead(200);
res.end("Hello world from: " + Meteor.release);
});
这是一篇很棒的文章,向您展示了不同的选项(webApp
还有光纤)http://meteorpedia.com/read/REST_API