Как обеспечить данные по умолчанию в 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)?
2 ответа
Насколько я знаю, у NeDB нет возможности создавать исходные данные.
Я думаю, что самый простой способ добиться этого - просто запросить, есть ли данные. Если подсчет документов возвращается 0
Очевидно, что исходные данные еще не сохранены, поэтому вы должны сделать это сейчас.
Если вы включите эту проверку в код запуска вашего приложения, оно автоматически инициализирует данные при первом запуске, а затем просто ничего не сделает.
Я сталкивался с этим вопросом, когда искал подобное решение. Я думал, что поделюсь тем, что я закончил (это модуль):
var fs = require("fs");
module.exports = function (app) {
var customizationService = app.service("customization");
fs.readFile("./db/customization", "utf8", function (err, data) {
if (err) {
return console.log(err);
}
if (data) {
// Sweet, carry on
} else {
var customOptions = {
SiteTitle: "VendoMarket",
SiteTagline: "The freshest eCommerce platform around"
};
// Save data to the locations service
customizationService.create(customOptions);
}
});
};
А потом по моему app.js
файл:
//--------------------------------------
// Initialize
//--------------------------------------
var vendoInit = require("./src/init");
vendoInit(app);
(Мои app.js
файл лежит в основе моего проекта, src
папка рядом с ней)