1

我正在尝试使用 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 应用程序),最好的保存方法是什么?

4

2 回答 2

1

据我所知,NeDB 没有创建初始数据的选项。

我认为实现这一点最简单的方法是简单地查询是否有数据。如果计数文档返回0,显然初始数据还没有保存,所以你现在应该这样做。

如果您在应用程序的启动代码中包含此检查,它将在第一次运行时自动初始化数据,然后什么也不做。

于 2014-11-28T18:59:11.143 回答
1

我在寻找类似的解决方案时遇到了这个问题。我想我会分享我最终得到的东西(这是一个模块):

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是它旁边的一个文件夹)

于 2016-04-26T23:50:25.680 回答