Как обеспечить данные по умолчанию в 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 папка рядом с ней)

Другие вопросы по тегам