2016-07-26 14 views
1

MEAN JSフレームワークを使用してアプリケーションを作成しています。私の目的は、ウェブサイトのロード時にクエリパラメータを検出してから、アプリの特定のパラメータを設定することです。Expressでクエリパラメータが検出されない

マイserver.js:

exports.index = function(req, res) { 

console.log('URL is ' + req.url); 
console.log('Path is ' + req.path); 
var param1 = req.query.param1; 
console.log('Parameter : ' + param1); 
console.dir(req.query); 

res.render('index', { 
    request: req, 
    myparam : param1 //Setting my custom parameter 
}); 
}; 

URLにアクセス

exports = module.exports = app; 

サーバーコントローラ:

http://localhost:3000/#!/?param1=test 

出力:

URL is/
Path is/
Parameter : undefined 
{} 

クエリパラメータがまったく検出されていません。誰かがなぜこれが起こっているのかも説明できますか?エクスプレスがルーティング中にパラメータを無視することは知っていますが、URLも削除しますか?

編集:

これは、エラーを引き起こしていた角の断片URLでした。 URLを正常にすると、Expressは上記の方法を使用してすべてのクエリパラメータを検出しました。

EDIT 2:ここ

MEANJS Get URL Parameters

+0

をごbody-使用することができ、私を知ってみましょうパーサーを使用してparamを取得する:req.body.param1 –

+0

ありがとう、それを試してみましょう。クエリ文字列パラメータはreq.queryの右側に格納する必要がありますか?どのように検出されないのでしょうか? – KVNam

+0

req.QueryString( "param1")を試す –

答えて

0

詳細な回答私は完全なコードへのアクセス権を持っていないので、私はこれはあなたのための正しい解決策である100%わかりません。それは私のために正常に動作しますが、

を定義します。その後、

var query = require('url').parse(req.url,true).query; 

そして:

var param1 = query.param1 

が、この場合に役立ちます:)

+1

エラーは#! AngularとMEANJSフレームワークによってURLに追加されました。 Expressは#!以外のクエリ文字列パラメータを検出しませんでした。私はきれいなURLに切り替えて、問題を解決しました。しかし、提案ありがとう:)。 – KVNam

+0

ようこそ。私はあなたがそれが働いてうれしいです。 – felipenbrito

関連する問題