让本机和neo4j一起工作

时间:2016-06-02 21:05:13

标签: node.js neo4j react-native

有没有人成功完成此操作并拥有可用的代码库?特别是当我尝试使用neo4j驱动程序时,它开始抱怨无法找到一堆真正基本的模块(断言,http,缓冲区,网络等)。我试过了node-neo4j和neo4j-driver。

我尝试逐个安装这些模块,但这似乎不对。

请注意,这是特定于react-native,如果我在前端使用正常反应而在后端使用nodejs它似乎工作正常

我从代码中取出几乎所有东西来隔离问题。

工作:

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  TextInput,
  View,
  BackAndroid,
  Navigator,
  ToolbarAndroid,
  TouchableHighlight,
  Alert
} from 'react-native';

class AwesomeProject extends Component {

  render() {
    return (
      <Text>HI</Text>
    )
  }
}

AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);

无效:

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  TextInput,
  View,
  BackAndroid,
  Navigator,
  ToolbarAndroid,
  TouchableHighlight,
  Alert
} from 'react-native';

var neo4j = require('neo4j-driver').v1;
var driver = neo4j.driver("bolt://localhost", neo4j.auth.basic("neo4j", "neo4j"));

var session = driver.session();

class AwesomeProject extends Component {

  render() {
    return (
      <Text>HI</Text>
    )
  }
}

AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);

Error

2 个答案:

答案 0 :(得分:0)

npm install net将解决这种依赖性。

答案 1 :(得分:0)

这可以通过以下方式完成:

  1. 运行npm install -g browserify

  2. 导航到项目的路由文件夹,并创建一个名为neo4j-in.js的新文件,其中包含以下几行:

     var neo4j = require("neo4j-driver");
     module.exports = neo4j
    
  3. 运行browserify neo4j-in.js -o neo4j.js

  4. 在文本编辑器中打开新的neo4j.js文件,搜索单词require的所有实例(甚至函数),并用reqq替换每个单词。

  5. >
  6. 在脚本的最上方添加一行,内容为var neo4j;

  7. 搜索行module.exports = neo4j;(将在脚本底部附近)并将其移至所有功能之外脚本底部的新行。

  8. 将文件另存为neo4j.js,并将其与所有其他软件包一起移到node_modules文件夹中。

  9. 将行var neo4j = require('neo4j-driver').v1;更改为var neo4j = require('neo4j')

我们收到此错误,因为React Native不包含Javascript neo4j驱动程序所需的核心节点JS模块,但是我们可以通过创建一个独立的Javascript文件来解决此问题,该文件包含neo4j驱动程序模块的polyfill。对于其他也依赖于核心节点JS模块的软件包,也可以做到这一点。如果您需要更多信息,这是一个详尽的解释。 https://hackernoon.com/using-core-node-js-modules-in-react-native-apps-64acd4d07140