nodeJS、MongoDB、および Express を使用して、API (REST) の一般的なクエリ メソッドに取り組んでいます。
ルートがリクエストをモジュールに転送した後、リテラルクエリを実行すると、すべてが期待どおりに機能します。例でクエリを実行していますが、正規表現または SQL 用語で「like」を使用してクエリを実行したい場合、それを機能させることができません。
モジュール内で Express を使用する find メソッドは次のとおりです。
exports.findByQuery = function(req, res) {
collection.find( req.query).toArray(function(err, docs);
}
これは期待どおりに機能しますが、T を持つすべてのユーザー名を検索するために正規表現を使用してフィールドをクエリする場合は、常に .query JSON オブジェクトを次のように "" を含む文字列として取得します。
{"username":"/T/"}
それ以外の :
{username:/T/}
req.query は GET リクエストから来ています。
私が置き換えた場合:
collection.find( req.query).toArray(function(err, docs);
と:
collection.find( {username:/T/} ).toArray(function(err, docs);
それは正常に動作します!.
.find を実行する前に、サニタイズまたは req.query への変換メソッドを実行する必要があると思いますが、何も見つかりません。手がかりや助けをいただければ幸いです。
よろしくお願いします。