Tag: nedb

Node.js – Nock和nedb – 在callback完成之前执行回复

我使用nock来拦截对我的API主机的调用,并在返回响应之前做一些本地数据库查找。 请参考下面的代码。 我拦截到“入口点”的调用,并希望回答从本地数据存储区获取的数据。 我相信这是一个nock模块本身的问题,我听到一些build议使用stream。 你能帮助克服这个问题吗? // … 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': { […]

在Nedb数据表中查找最小值?

我在Nedb中有如下的数据结构: ["UserId":"1446844665274","taskDone":"false","id":12,"_id":"1XURfx5uAZpgbh1i"] ["UserId":"1446844665274","taskDone":"false","id":10,"_id":"2I25xNAGTM7Iw2Af"] ["UserId":"1446844665274","taskDone":"false","id":3,"_id":"ESfi8ej5pbWBHV8o"] ["UserId":"1446844665274","taskDone":"false","id":9,"_id":"Etta7RLg2b09p9Bx"] 我正在尝试从表中筛选最小的id值的行。 如果有人可以build议我如何查询NEDB以获得最小的id值,这将是非常有帮助的。 我正在使用node.js和nedb。 谢谢。

NeDB +打字稿

我如何使用types脚本类语法获得与NeDB的数据存储? namespace NamespaceName { "use strict"; export class Persistence { private attrs: Type; public static $inject: Array<string> = []; constructor( ) { this.attr1 = ""; } // Public Methods public method1() { … } // Private Methods private method1() { … } } } 我应该在哪里创build和实例化我的数据存储?

levelDB仍然损坏数据?

我正在写一个小型的NodeJS应用程序,我需要某种数据库。 LevelDB( LevelUP )和NeDB接缝是最stream行的,所以select… 据维基百科2016年11月18日 ,LevelDB经常破坏数据。 LevelDB被认为是不可靠的,而且它所pipe理的数据库容易腐败。[13] [14] [15] [16] [17] [18] [19] [20] 对以前版本的LevelDB进行的学术研究[21,22]发现,在某些文件系统下,存储在这些版本的LevelDB中的数据在系统崩溃或电源故障后可能会变得不一致。 LevelDB腐败非常普遍,腐败检测必须内置到使用它的应用程序中。 题 这是从过去的事情,不再是一个问题了吗?

Nedb更新正在添加新logging,而不是更新现有logging

我真的很苦恼,所以我希望有人能帮助我理解为什么我得到这种行为。 我有一个文件,其中包含以下logging {"Id":"","documentPath":"mission.pdf","dName":"BIOLOGY TEST 1110","dCourseNumber":"1110","dSubject":"BIOL","dTerm":"201690","dTitle":"BIOLOGY TEST 1110","student":"491502","timestamp":1486152313972,"assessed":true,"errorCmt":"","uploadDate":"2/3/2017 14:5","_id":"QwKHQ8sRQdivRJDp"} {"Id":"","documentPath":"university.pdf","dName":"BIOLOGY TEST 1111","dCourseNumber":"1111","dSubject":"BIOL","dTerm":"201690","dTitle":"BIOLOGY TEST 1111","student":"491502","timestamp":1486151521825,"assessed":false,"errorCmt":"","uploadDate":"2/3/2017 13:52","_id":"mh0pdGERB6fZU4s3"} 在我的testdb.js文件中我有: var Datastore = require('nedb'); var db = new Datastore({filename: './db.db', autoload: true}); db.update({ _id: "QwKHQ8sRQdivRJDp"}, { $set: { assessed: true} }, {}, function (err, numReplaced) { console.log("replaced—->" + numReplaced); }); db.find({}).exec(function (err, docs) {console.log(docs);}); 我在最后执行的查找表明,我更新了一条logging,并打印出logging,并且看起来像我期望的那样。 如果我打开db.db我现在看到这个: {"Id":"","documentPath":"mission.pdf","dName":"BIOLOGY TEST 1110","dCourseNumber":"1110","dSubject":"BIOL","dTerm":"201690","dTitle":"BIOLOGY TEST […]

NEDB查询返回错误肯定与数组$ nin

我遇到了使用NEDB find()查询结构的问题。 下面的find()查询应该返回所有新消息:发送到email或指定的All组,并且没有被指定的email读取或发送。 但是,它正在返回误报。 例如,平面文件(下面)中的两个项目被返回到结果中,尽pipe被评估的属性数组中的email为。 我正在使用$nin操作符,而且我无法弄清楚我在做什么错误? 所有的build议欢迎:) var email = 'anotheraddress@gmail.com'; var message_query = []; message_query.push({$and: [{to: 'All'}, {'data.readBy': {$nin: [email]}}]}); message_query.push({$and: [{to: email}, {'data.read': {$exists: false}}]}); message .find({ $and: [ {$not: {from: email}}, {$or: message_query} ] }) .exec(function (err, results) { }); 这是平面文件的一个片段。 这两个不应该返回,但他们是:/ … { to: 'All', toname: 'Some Name', from: 'someaddress@gmail.com', fromname: […]

有没有一种方法来防止在neDB集合的数组中的条目重复?

var addNewUser = function (id, chatId) { db.update({ _id: id }, { $push: { users: chatId } }, {}, function (err, numAffected) { // code after the record is updated }); } 在这个代码中,我想推新的Id到数组,如果它不在其中。 我已经阅读了neDB的文档 ,但似乎没有办法做到这一点 我是初学者,所以我认为有办法做到这一点,但我不能看到它。

如何确保NeDB中的默认数据?

我试图使用NeDB作为我的数据在node-webkit应用程序中的存储。 我有名为config.db的单个集合: var Datastore = require('nedb') , path = require('path') , db = new Datastore({ filename: path.join(require('nw.gui').App.dataPath, 'config.db') }); 当用户首次打开node-webkit应用程序时,我的config.db应该有如下默认数据: { color: "red", font: 'bold' … } 如果还没有,NeDB是否有提供默认数据的选项? 或者,如果config.db为空(如果用户首次打开node-webkit应用程序),保存它的最佳方法是什么?

如何使用node.js发布页面

我刚开始学习node.js。 在过去的两天里,我一直在研究一个接受用户input并发布ICS文件的项目。 我所有的工作。 现在考虑何时需要显示这些数据。 我得到一个router.get来看看我是否在/cal页面和.. router.get('/cal', function(req, res, next) { var db = req.db; var ical = new icalendar.iCalendar(); db.find({ evauthor: 'mykey' }, function(err, docs) { docs.forEach(function(obj) { var event2 = ical.addComponent('VEVENT'); event2.setSummary(obj.evics.evtitle); event2.setDate(new Date(obj.evics.evdatestart), new Date(obj.evics.evdateend)); event2.setLocation(obj.evics.evlocation) //console.log(ical.toString()); }); }); res.send(ical.toString()); // res.render('index', { // title: 'Cal View' // }) }) 所以当/cal被请求的时候,它循环遍历我的db并创build一个ICS日历。 如果我在循环内做了console.log(ical.toString) ,它给了我一个遵循协议的格式正确的日历。 […]

使用NeDB引用另一个文档(SQL风格的联接)

我在NeDB有一堆文件,让我们来看看这个forms: { _id : "3HDl4vDjQhcWvM76", type : "customer", name : "Bob" }, { _id : "65byNNj7578B9hyu", type : "action", customer : "3HDl4vDjQhcWvM76", … }, (所以一个'行动'引用一个'客户') 而且我想要做一些事情,比如列出所有的行为以及他们的客户名字。 明显的做法是: db.find({ type: 'action' }, function (err, actions) { actions.forEach(function(action) { db.findOne({ type: 'customer', _id : action.customer }, function (err, customer) { console.log(action, customer.name); }); }); }); 但是,这很快就会变得痛苦。 有没有更好的方法来做到这一点? […]