在meteor.js中处理后期数据的简便方法?

时间:2013-02-04 09:28:38

标签: javascript meteor

我需要在meteor.js应用程序中处理一些POST数据,是否有一种简单的方法可以做到这一点?

非常基本,如果它是一个PHP应用程序,我只想要$ _POST变量。

3 个答案:

答案 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 Routerdocs here,因为Router(如上所述)已过时且可能不再有效。

Router.route('/items/:id', {where: 'server'})
    .get(function () {
        this.response.end('get request\n');
    })
    .post(function () {
        this.response.end('post request\n');
    });