NW.js - PouchDB - 无法通过节点 webkit 中的 require() 使用 PouchDB
NW.js - PouchDB - Unable to use PouchDB via require() in node webkit
我是 pouchdb 的新手,nw.js 可能这个问题有点太简单了,(抱歉我的无知)。
我正在尝试通过 require() 在 nw.js 项目中使用 pouchdb,但没有成功。
根据 pouchdb setup 的文档,在 Node.js 部分下,我完全按照它所说的进行编辑,但没有成功。
之后,我将 leveldown 组件安装到项目中,并在 https://github.com/nolanlawson/pouchdb-nw
github 项目下按照以下说明进行操作。
因此,在这一点上,我已经完成了以下操作:
nw-gyp configure --target=0.12.3 / in the node_modules/leveldown directory
nw-gyp build
然后,根据 pouchdb.com/guides/databases.html 我有:
var PouchDB = require('pouchdb');
var db = new PouchDB('kittens');
但还是没有运气。此外,通过 运行 以下内容:
db.info().then(function (info) {console.log(info); });
没有回应。
注意:如果只包括这个<script src="../node_modules/pouchdb/dist/pouchdb.min.js"></script>
在 index.html 文件中,一切都很顺利。
nw.js版本:0.12.3/
pouchdb 版本:5.2.1
我错过了什么?
你试过演示了吗? https://github.com/nolanlawson/pouchdb-nw-hello-world NW.JS.
中正确安装 PouchDB 的步骤相当多
编辑:哦等等,是的,您已经看过演示了。也许问题是 LevelDOWN 与您的 NW 版本不兼容?在我的演示中,我使用的 NW 版本比你的要旧。
另一种选择是在 Node 中使用 websql
适配器,它应该可以为您提供与 LevelDB 相似的性能,同时可能比 LevelDOWN 更容易编译。如果一切都失败了,我建议在 LevelDOWN 回购上提交问题;他们有大量与在 Z 操作系统上的 Y 体系结构上构建 X 版本节点相关的问题,因此您的 XYZ 组合可能是独一无二的。
我终于找到了解决问题的有效方法。
解决方法如下:
1) 我将 pouchDB 更新到 5.3.0
npm update pouchdb --save
2) 然后导航至 node_modules/leveldown
cd node_modules/leveldown
3) 使用 nw.js 目标版本
配置 gyp
sudo nw-gyp configure --target=0.12.3
4) 再次建造 nw gyp
nw-gyp build
5) 然后在我的 javascript 模块文件中
var PouchDB = require('pouchdb');
var arincPouchDB = new PouchDB('./db/arincAirports'); // new pouch db for node without adapter // means you get leveldb adapter in this case.
var jsonData = require("../datasrc/output/data.json");
arincPouchDB.bulkDocs(jsonData);
arincPouchDB.info().then(function (info) {
console.log(info);
});
6) 控制台显示...
Objectadapter: "leveldb"
auto_compaction: false
backend_adapter:"LevelDOWN"
db_name: "./db/arincAirports"doc_count: 12
update_seq: 12
__proto__: Object...
注意: 如果您尝试从 html 文件中的脚本标签使用 pouchDB,同时您必须在 javascript 函数,将通过模块导出导出,例如
exports.pouchDBFunction = new pouchDBFunction();
并在另一个 javascript 文件中使用这个导出函数,
像这样
var json2PouchDB = require("./js/pouchDBFunction.js");
json2PouchDB.pouchDBFunction;
将不起作用,您将收到错误 pouchdb 未定义。这就是为什么您需要通过 require() 函数拥有 pouchDB。
希望这个变通办法能帮助...
我是 pouchdb 的新手,nw.js 可能这个问题有点太简单了,(抱歉我的无知)。
我正在尝试通过 require() 在 nw.js 项目中使用 pouchdb,但没有成功。
根据 pouchdb setup 的文档,在 Node.js 部分下,我完全按照它所说的进行编辑,但没有成功。
之后,我将 leveldown 组件安装到项目中,并在 https://github.com/nolanlawson/pouchdb-nw
github 项目下按照以下说明进行操作。
因此,在这一点上,我已经完成了以下操作:
nw-gyp configure --target=0.12.3 / in the node_modules/leveldown directory
nw-gyp build
然后,根据 pouchdb.com/guides/databases.html 我有:
var PouchDB = require('pouchdb');
var db = new PouchDB('kittens');
但还是没有运气。此外,通过 运行 以下内容:
db.info().then(function (info) {console.log(info); });
没有回应。
注意:如果只包括这个<script src="../node_modules/pouchdb/dist/pouchdb.min.js"></script>
在 index.html 文件中,一切都很顺利。
nw.js版本:0.12.3/ pouchdb 版本:5.2.1
我错过了什么?
你试过演示了吗? https://github.com/nolanlawson/pouchdb-nw-hello-world NW.JS.
中正确安装 PouchDB 的步骤相当多编辑:哦等等,是的,您已经看过演示了。也许问题是 LevelDOWN 与您的 NW 版本不兼容?在我的演示中,我使用的 NW 版本比你的要旧。
另一种选择是在 Node 中使用 websql
适配器,它应该可以为您提供与 LevelDB 相似的性能,同时可能比 LevelDOWN 更容易编译。如果一切都失败了,我建议在 LevelDOWN 回购上提交问题;他们有大量与在 Z 操作系统上的 Y 体系结构上构建 X 版本节点相关的问题,因此您的 XYZ 组合可能是独一无二的。
我终于找到了解决问题的有效方法。
解决方法如下:
1) 我将 pouchDB 更新到 5.3.0
npm update pouchdb --save
2) 然后导航至 node_modules/leveldown
cd node_modules/leveldown
3) 使用 nw.js 目标版本
配置 gypsudo nw-gyp configure --target=0.12.3
4) 再次建造 nw gyp
nw-gyp build
5) 然后在我的 javascript 模块文件中
var PouchDB = require('pouchdb');
var arincPouchDB = new PouchDB('./db/arincAirports'); // new pouch db for node without adapter // means you get leveldb adapter in this case.
var jsonData = require("../datasrc/output/data.json");
arincPouchDB.bulkDocs(jsonData);
arincPouchDB.info().then(function (info) {
console.log(info);
});
6) 控制台显示...
Objectadapter: "leveldb"
auto_compaction: false
backend_adapter:"LevelDOWN"
db_name: "./db/arincAirports"doc_count: 12
update_seq: 12
__proto__: Object...
注意: 如果您尝试从 html 文件中的脚本标签使用 pouchDB,同时您必须在 javascript 函数,将通过模块导出导出,例如
exports.pouchDBFunction = new pouchDBFunction();
并在另一个 javascript 文件中使用这个导出函数, 像这样
var json2PouchDB = require("./js/pouchDBFunction.js");
json2PouchDB.pouchDBFunction;
将不起作用,您将收到错误 pouchdb 未定义。这就是为什么您需要通过 require() 函数拥有 pouchDB。
希望这个变通办法能帮助...