1

nock を使用して API ホストへの呼び出しをインターセプトし、応答を返す前にローカル データベース ルックアップを実行しています。

以下のコードを参照してください。「entrypoint」への呼び出しをインターセプトし、ローカル データストアから取得したデータで応答したいと考えています。

これは、nock モジュール自体に問題があると思います。ストリームを使用する提案はほとんど聞いていません。この問題を克服するのを手伝ってくれませんか?

// ... Code Block

var nock = require('nock'),
    request = require('request'),
    DataStore = require('nedb'),
    db = new DataStore({filename: './nedb.data'});

db.loadDatabase(function(err) {
    if (err) throw err;
});

db.insert ({'record1': { "key1" : "value1"} });
db.insert ({'record2': { "key2" : "value2"} });
db.insert ({'record3': { "key3" : "value3"} });
db.insert ({'record4': { "key4" : "value4"} });
db.insert ({'record5': { "key5" : "value5"} });

var n = nock('http://localhost:8000')
            .get ('/entrypoint')
            .reply (200, function () {
                db.find ({}, function(err, docs) {
                    if (err) throw err;
                    return docs;
                });
            });

request('http://localhost:8000/entrypoint', function (error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log ('\nBEGIN: Body: ');
        console.log(body);
        console.log ('\n\nEND: Body: \n\n');
    }
});
4

1 に答える 1

1

現時点では不可能です。この問題の修正を開始するためにこのバグを作成しました。

https://github.com/pgte/nock/issues/283

于 2015-03-13T16:45:40.443 に答える