【问题标题】:How to create database within nodejs application code in node-webkit?如何在 node-webkit 的 nodejs 应用程序代码中创建数据库?
【发布时间】:2015-01-26 19:39:26
【问题描述】:

我正在尝试使用NeDB 数据库来持久化应用程序数据。我正在尝试使用以下方法连接到我的数据库,如下所示:

var Datastore = require('nedb')
  , path = require('path')
  , db = new Datastore({ filename: path.join(require('nw.gui').App.dataPath, 'something.db') }

但不幸的是它失败了,因为这仅适用于 html 文件中带有 <script></script> 标记的客户端代码。我怎么能在服务器端做同样的事情?

【问题讨论】:

  • node-webkit 可以在桌面上运行。如果你想要服务器端数据库,我猜你会使用一些 AJAX 调用到你的服务器。 NEDB 查询逻辑也将在服务器上。
  • @Timothy 不,我需要在本地机器上使用数据库。不是服务器端
  • 请澄清一下,那您的问题是什么?在 index.html 中,您可以包含类似 db.js 的内容,并在 window.onload 上初始化 db 连接。可以对其他事件进行对 DB 的查询,例如单击 HTML 中的链接。这对你有用吗?
  • 我需要在node-main脚本中的“服务器端”初始化数据库
  • 我看到您在另一个主题中重写了您的问题并且已经得到了答案:)

标签: node.js node-webkit nedb


【解决方案1】:

这里的问题是,你不能在 nodejs 上下文中 require('nw.gui') ,因为在 nodejs 环境中没有窗口。没有窗口,没有gui。所以你能做的就是在你的主文件(index.html)中创建一个script标签,并将src添加到你的db.js文件中,它应该可以正常工作。

在 index.html 中

<script src="db/db.js"></script>

在 db/db.js 中

var Datastore = require('nedb')
,   path = require('path')
,   dbFile = path.join(require('nw.gui').App.dataPath, 'something.db')
,   db = new Datastore({ filename: dbFile })

【讨论】:

猜你喜欢
  • 2013-05-02
  • 2016-02-24
  • 1970-01-01
  • 2014-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
  • 2013-09-10
相关资源
最近更新 更多