我需要在meteor.js应用程序中处理一些POST数据,是否有一种简单的方法可以做到这一点?
非常基本,如果它是一个PHP应用程序,我只想要$ _POST变量。
答案 0 :(得分:4)
流星路由器
https://github.com/tmeasday/meteor-router#server-side-routing
Meteor.Router.add('/items/:id', 'POST', function(id) {
// update Item Function
return [200, 'ok'];
});
答案 1 :(得分:1)
如果您只是想拦截GET和POST数据,那么就按照它的快乐方式发送Meteor,您可以在服务器上执行类似的操作。
if (Meteor.isServer) {
var connect = Npm.require('connect');
var app = __meteor_bootstrap__.app;
var post, get;
app
// parse the POST data
.use(connect.bodyParser())
// parse the GET data
.use(connect.query())
// intercept data and send continue
.use(function(req, res, next) {
post = req.body;
get = req.query;
return next();
});
Meteor.startup(function() {
// do something with post and get variables
});
}
编辑11/01/13
我最终为此创建了一个智能包(对我来说)。没有文档,但欢迎您使用它。 https://github.com/johnnyfreeman/request-data
检索foo
请求变量:
RequestData.get('foo') // --> 'bar'
RequestData.post('foo') // --> 'bar'
如果找不到密钥,两种方法都会throw
Meteor.Error
,因此如果变量是可选的,请确保使用try
/ catch
换行。< / p>
答案 2 :(得分:0)
您可以使用Meteor的Iron Router
,docs here,因为Router
(如上所述)已过时且可能不再有效。
Router.route('/items/:id', {where: 'server'})
.get(function () {
this.response.end('get request\n');
})
.post(function () {
this.response.end('post request\n');
});