我试图使用电子和Neo4j官方npm打包驱动程序为Neo4j创建一个示例演示应用程序,我的代码非常基础,但一旦我试图打开一个会话,我就会得到一个错误。这段代码是在脚本标记中的index.html中编写的:
require('./renderer.js')
var neo4j = require('neo4j-driver').v1;
var driver = neo4j.driver("bolt://localhost", neo4j.auth.basic("neo4j", "neo4j"));
var session = driver.session();在最后一次调用时,这是我在控制台得到的错误消息:
Uncaught Error: Don't know how to send buffer: NodeBuffer( position=0 )60 60 b0 17 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 有没有人遇到过这样的问题?
发布于 2016-05-27 00:41:32
我已经创建了一个使用电子和Vuejs的应用程序,非常简单,它运行一个简单的密码查询和打印到浏览器。
首先,您需要将脚本作为web浏览器资源:
<script type="text/javascript" src="static/neo4j-web.js"></script>这在未来将会改变,neo4j意识到了这一点
其次,此资源需要在您的资产中,或者您可以使用neo4j cdn
然后我就可以通过全局导入使用neo4j了:
var driver = global.neo4j.v1.driver('bolt://localhost')
var session = driver.session()
session.run('CREATE (n:Electron) RETURN n')
.subscribe({
onNext: function (record) {
console.log(record._fields)
},
onCompleted: function () {
session.close()
},
onError: function (error) {
console.log(error)
}
})第三件事你需要在你的webpack配置中允许neo4j外部变量:
externals: {
'neo4j': 'neo4j'
}你可以在这里看到我的回购:https://github.com/ikwattro/electron-vue-test
正如我所说的,这是一个很好的世界,但它正在工作。
发布于 2016-10-19 14:35:34
问题似乎是驱动程序检测到它正在浏览器中运行,并尝试使用websocket通道。
您可以通过更改以下内容来“强制”驱动程序使用节点通道:
var Channel = undefined;
if (_chWebsocket2["default"].available) {
Channel = _chWebsocket2["default"].channel;
} else if (_chNode2["default"].available) {
Channel = _chNode2["default"].channel;
} else {
throw (0, _error.newError)("Fatal: No compatible transport available. Need to run on a platform with the WebSocket API.");
}至
var Channel = undefined;
Channel = _chNode.channel;在此文件中:
https://github.com/neo4j/neo4j-javascript-driver/blob/1.1/lib/v1/internal/connector.js#L64
https://stackoverflow.com/questions/37465563
复制相似问题