我正在使用nock拦截对我的API主机的调用,并在返回响应之前进行一些本地数据库查询。
请参考下面的代码。我拦截了对“入口点”的调用,并希望以从本地数据存储中获取的数据进行回复。
我相信这是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');
}
});
最佳答案
目前尚不可能,我已经创建了此错误以开始解决此问题。
https://github.com/pgte/nock/issues/283
关于node.js - Node.js-Nock和nedb-在回叫完成之前执行回复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25697093/