Javascript 铁:路由器&x2B;流星罐';t将POST数据添加到数据库和渲染路由

Javascript 铁:路由器&x2B;流星罐';t将POST数据添加到数据库和渲染路由,javascript,post,meteor,url-routing,iron-router,Javascript,Post,Meteor,Url Routing,Iron Router,我正在用Meteor编写一个应用程序,它需要从POST请求中获取数据,并在相同的路径上呈现一个成功页面。这是我的/提交路线的当前代码: Router.route('/submit', function() { Records.insert({ testValue: 'The Value', importantVal: this.request.body.email, createdAt: new Date() }); th

我正在用Meteor编写一个应用程序,它需要从POST请求中获取数据,并在相同的路径上呈现一个成功页面。这是我的/提交路线的当前代码:

Router.route('/submit', function() {
     Records.insert({
        testValue: 'The Value',
        importantVal: this.request.body.email,
        createdAt: new Date()
    });
    this.render('success');
}, {where: 'server'});
当我运行这段代码时,数据被插入到记录数据库中,但它从未呈现成功模板。当我转到/submit路径时,它只会永远加载,而不会在页面上显示任何内容。当我去掉{where:'server'}时,它将呈现模板,但不会将数据添加到数据库中


如何获得要添加的数据和要呈现的模板?

请在
iClient
iServer
之外尝试此操作

Router.route('/submit', {    
    template: 'success',
    onBeforeAction: function(){
       Records.insert({
        testValue: 'The Value',
        importantVal: $('[name=email]').val(),//email from input field with name="email"
        createdAt: new Date()
    });
   }
});

问题是,要将数据发布到路由,必须在服务器上运行,并且不能从服务器路由呈现客户端模板。解决此问题的一种方法是使用
302
重定向返回客户端,如下所示(代码是coffeescript):


服务器
路由接收已发布的数据,并在重定向到
客户端
路由之前对其进行操作。
客户端
路由的名称用于标识要呈现的模板。

这给了我在将{where:'server'}添加到路由之前的相同错误:异步函数回调中的异常:TypeError:无法读取未定义的
请求的属性“email”
没有
正文
属性。。如果该电子邮件是由用户输入的,您可以首先获取电子邮件
importantVal:$('[name=email]').val()
我从Meteor服务器的单独服务器获取数据,需要通过POST请求获取数据。我无法在客户端上运行jQuery代码,因为表单位于单独的域上。运行此代码会导致错误,因为它的结构方式(不是将路由括在括号中…)。通过将呈现更改为this.response.writeHead(302,{'Location':'/success'}),尝试重构此代码以使用当前代码;this.response.end();为/success添加新的路径似乎并不能解决我的问题。实际上,这似乎是由于我忘记了此.response.end()结尾的括号造成的;谢谢你的帮助!很抱歉缺少括号等,我忘了提到代码在coffeescript中,我已经在回答中修复了这个问题。
Router.route '/submit', where: 'server'
    .post ->
        Records.insert
            testValue: 'The Value'
            importantVal: @request.body.email
            createdAt: new Date()
        @response.writeHead 302, 'Location': '/success'
        @response.end()

Router.route '/success', name:'success'