Node.js 当应用程序';他放松了

Node.js 当应用程序';他放松了,node.js,node-webkit,persistent-storage,nedb,Node.js,Node Webkit,Persistent Storage,Nedb,我已经编写了NodeWebKitApp,其中保存了用户的数据(如名称、uid和设置),以供以后使用。我可以插入一个文档,我可以看到它的内容。文件大小约为2KB 但是,如果我关闭应用程序,然后重新打开它,保存的数据将丢失,并且我会看到一个0字节大小的文件 调试时,我发现在执行以下行时会发生此行为: db = new Datastore({ filename: myPath, autoload: true }); 我试图调试nedb/persistence.js,但无法解决问题。我还尝试通过调用l

我已经编写了
NodeWebKitApp
,其中保存了用户的数据(如名称、uid和设置),以供以后使用。我可以插入一个文档,我可以看到它的内容。文件大小约为2KB

但是,如果我关闭应用程序,然后重新打开它,保存的数据将丢失,并且我会看到一个0字节大小的文件

调试时,我发现在执行以下行时会发生此行为:

db = new Datastore({ filename: myPath, autoload: true });
我试图调试
nedb/persistence.js
,但无法解决问题。我还尝试通过调用
loadDatabase(function(err){})
手动加载数据库,但没有成功

下面是一段代码:

var Datastore = require('nedb'),  
..
..
..                                                               
myPath = "<User-Home>/.myApp/user.db",
db = new Datastore({ filename: myPath, autoload: true });
var Datastore=require('nedb'),
..
..
..                                                               
myPath=“/.myApp/user.db”,
db=新数据存储({filename:myPath,autoload:true});

您确定“/.myApp/user.db”是有效路径吗?您可以尝试改为“/myApp/user.db”。

如果您没有使用实际的
insert()
命令将数据插入.db文件,请确保您的条目在每个JSON行中都有一个
\u id
字段。

是的,它在用户主目录下的隐藏文件夹。”/Users/user home/.myApp/user.db'(在mac上)。插入文档后,我能够书写并可以看到文件中的数据。但,在重新启动应用程序时,它被清除/清空/覆盖(发生在我创建数据存储的地方),我尝试使用非隐藏文件夹,但问题相同。在进一步的调试中,我看到loadDatabase正在创建数据文件,从而导致旧数据丢失。有什么线索吗?文档建议,如果您使用autoload,那么您就不会手动调用loadDatabase(这实际上会覆盖您的文件)。希望您的项目中没有该代码。您可以尝试将WebKitApp命名为。。。var Datastore=require('nedb'),db=new Datastore({filename:myPath,autoload:true,nodeWebkitAppName:'nwtest'});[或者不管你的appname是什么]