0

node.jsのエクスプレスモジュールを使用して、次の形式のURLをモックします。

http://localhost:3002/example.domain.to.mock/features/location?lat=100.1234&lon=99.9876

しかし、正規表現を使用すると疑問符の文字をエスケープできないようです

var express = require('express');
var app = module.exports = express.createServer();

app.get('/example.domain.to.mock/features/location\?lat=*', function(req, res) {
    sendMockResponseFromFile("mock_location.txt", res);
});

上記のコードは、疑問符が含まれているURLでは機能しません。疑問符ではなく、アンパサンドを含むリクエストをモックすることができます。私も'\\?'を試しました と '?' 運がない。

4

2 に答える 2

3

Expressのルーターは、URL全体ではなく、URLのパス部分でのみ動作するため、クエリ文字列のコンテンツでルートを一致させることはできません。回避策は合理的です。

于 2012-07-23T03:40:38.530 に答える
0

目的の回避策を見つけました。すべてのリクエストを受け入れてから、簡単な正規表現テストを実行して、必要な適切なモックファイルを送信します。

app.get('/example.domain.to.mock/features/location', function(req, res) {
  var originalURL = req.originalUrl;
  var regexPatternForFilteredSearch = new RegExp(".*myRequiredRegex.*");

  if (regexPatternForFilteredSearch.test(originalURL)) {
      sendMockResponseFromFile("mock_location.txt", res);
  } else {
      sendMockResponseFromFile("second_mock_location.txt", res);
  }
});

app.get()コマンド内で正規表現を使用して達成できなかった理由についてはまだ興味があります

于 2012-07-23T00:57:46.507 に答える