我正在尝试使用NeDB作为节点-webkit应用程序中数据的存储。我有一个名为config.db的集合
var Datastore = require('nedb')
, path = require('path')
, db = new Datastore({ filename: path.join(require('nw.gui').App.dataPath, 'config.db') });当用户第一次打开节点-webkit应用程序时,我的config.db应该具有以下默认数据:
{
color: "red",
font: 'bold'
...
}如果还没有默认数据,NeDB有提供默认数据的选项吗?或者如果config.db是空的(万一用户第一次打开节点-webkit应用程序的话),那么保存它的最佳方法是什么?
发布于 2014-11-28 18:59:11
据我所知,NeDB没有创建初始数据的选项。
我认为实现这一目标的最简单的方法就是简单地询问是否存在数据。如果计数文档返回0,显然初始数据还没有保存,所以现在应该这样做。
如果将此检查包含在应用程序的启动代码中,它将在第一次运行时自动初始化数据,然后什么也不做。
发布于 2016-04-26 23:50:25
我在寻找类似的解决方案时遇到了这个问题。我想我应该分享我最后得到的东西(这是一个模块):
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是它旁边的一个文件夹)
https://stackoverflow.com/questions/27194464
复制相似问题