0

現在、特定のルート ルール内のフォームから投稿された値を取得しようとしています。これに関する他のすべての SO 投稿が機能しないため、もう一度お尋ねしたいと思います。これを整理してプロジェクトに実装していますか? Iron-Router@1.0.9 の解決策はありますか?

this.request.body

上記のルート ルール内のコードは、常に undefined を返します。

 Router.route('/register', function(){
   console.log( JSON.stringify(this.request.body) );
   //this.render('test',{data:{data:this.request.body.username}})

 });







//SERVER ONLY
if (Meteor.isServer) {
  Meteor.methods({
    'addSong': function(songName) {
      var userId = Meteor.userId()
      songs.insert({
        userId: userId,
        name: songName
      })
    }

  })

  Router.onBeforeAction(Iron.Router.bodyParser.urlencoded({
    extended: true
  }));

}
4

2 に答える 2

0

Iron Router Guide は、とが「NodeJS リクエストおよびレスポンス オブジェクト」であることを示しています。this.requestthis.response

のドキュメントを見るとreq.body、次のことがわかります。

デフォルトでは未定義であり、body-parser や multer などの本文解析ミドルウェアを使用すると入力されます。

Iron-routerのガイドから:

IR は Express の body-parser を Iron.Router.bodyParser で利用できるようにします。

それで、あなたはそれを持っています!this.request.body移入したい場合は、次を追加する必要があります。

Router.onBeforeAction(Iron.Router.bodyParser.urlencoded({
    extended: true
}));
于 2015-09-23T09:46:40.090 に答える
0

コントローラー用に 1 つのファイルを作成して、コントローラー フォルダーの下にコードの再利用性名を solar.js として維持しました。そのソーラー ファイルには db 機能があり、そのファイルのパラメーターとして要求と応答を exports.getSolarInfo = (req,res) のように渡します。 => { console.log(req.body) }、ここで本体パラメーターを取得します。次に、ここで機能を操作し、次のような応答を送信します response = { "status" : 0, "result" : "invalid query" } res. end(JSON.stringify(応答));

// コントローラーのインポート const SOLAR = require('./controllers/solar.js');

Router.route( '/solar', function() {
  //setting header type to allow cross origin
  this.response.setHeader( 'Access-Control-Allow-Origin', '*' );
  if ( this.request.method === "OPTIONS" ) {
    this.response.setHeader( 'Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept' );
    this.response.setHeader( 'Access-Control-Allow-Methods', 'POST, PUT, GET, DELETE, OPTIONS' );
    this.response.end( 'Set OPTIONS.' );
  } else {
    SOLAR.getSolarInfo(this.request,this.response);
  }
}, { where: 'server' });
于 2020-01-22T11:37:37.983 に答える