2016-06-15 13 views
1

最近nodeJsでプログラミングを開始しました。ノードJsのUrlから値を抽出する方法

私は、私がした方法を削除してい

demoApp.factory('class', function ($resource) { 
     return $resource('/class/:classId', { classId: '@_classId' }, { 
     update: { method: 'PUT' } 
     }); 
    }); 

としてコントローラにAPIを呼び出すために角度JS、リソースを使用しています。ブラウザを使用して

// The class object, e {classId: 1, className: "Pro"} 

$scope.deleteClass = function (class) { 
     var deleteObj = new Class(); 
     deleteObj.classId = class.classId; 
     deleteObj.$delete({classId : deleteObj.classId}, function() { 
      growl.success("Class deleted successfully."); 
      $location.path('/'); 
      },function() { 
       growl.error("Error while deleting Class."); 
      } 
     ); 
    }; 

、私は、コールがに行く検証:server.js

app.use('/class', classController.getApi); 

ノードのJsで今
http://localhost:3000/class/1 

、どのように私は、URLから値を抽出する必要があり

In classcontroller.js

exports.getApi = function(req, resp){ 
    switch(req.method) { 
     case 'DELETE': 
      if (req) { 
       // how to extract 1 from url. 
      } 
      else { 
       httpMsgs.show404(req, resp); 
      } 
      break;   

私は、

console.log(req.params); 
console.log(req.query); 

しかし、運を試してみました。

私は任意のヘルプ感謝

console.log(req._parsedUrl); 
query: null, 
pathname: '/class/1', 
path: '/class/1', 

を見ています。

+0

req.url.replace( "/"、 "");私は1を抽出することができます。 –

答えて

0

は、のようにreq.hostnameを使用してみてください:

`http://host/path"

+0

console.log(req.hostname); localhostを提供します。 –

+0

あなたはどんな価値を得ようとしていますか?クエリ文字列パラメータがないため、なぜquery:nullになりますか。 – eschie

+0

http:// localhost:3000/class/1 ..要求はこれです。私は1を抽出しようとしています。 –

1

これは、右の呼び出しを取得すべきですか?あなたはgetという方法でangular $ httpサービスを使うことができます。 app.use( '/ class')をapp.get( '/ class'、function)に置き換えます。次に、req.param( 'classId')を使用してデータを取得できます。私はそれがうまくいくと思う。

はapp.useためにあなたのapp.useをアップデートしてみてください( '/クラス/:CLASSID')、その後、req.params.classId

+0

ありがとうございます。それは削除呼び出しです。getに変更すると意味がありません。 –

+0

私はそれを忘れて申し訳ありません。 app.use( '/ class /:classId')にapp.useを更新してから、req.params.classIdを試してみてください。 – Aravind

+0

いいえ、私がCURD APIを呼び出すという私の全体的な設計に影響するように変更した場合。 –

0

チェックこのanswerを試してみてください。

Tldr;

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

また、ノードURLのdocsも読んでください。

+0

私が言ったように、それはクエリまたはparamを持っていません。要求は localhost:3000/class/1です。したがって、クエリまたはparam関数は機能しません。 –

関連する問題