Cassandra with react,net.socket错误

时间:2016-12-08 15:52:53

标签: node.js reactjs cassandra

我是一个新手来回应和cassandra。我只是想通过使用“npm i cassandra-driver”连接到cassandra数据库。

我有一个main.js文件,其中我使用了cassandra驱动程序代码。

Main.js

import 'babel-polyfill';
import 'whatwg-fetch';

import React from 'react';
import ReactDOM from 'react-dom';
import FastClick from 'fastclick';
import { Provider } from 'react-redux';

import store from './core/store';
import router from './core/router';
import history from './core/history';

const cassandra = require('cassandra-driver');
const client = new cassandra.Client({ contactPoints: ['127.0.0.1'], keyspace: 'excelsior'}); 
console.log("client---->",client);
const query = 'SELECT * FROM playlists';

client.execute(query, [], function(err, result) {
    console.log("err----->",err);
    console.log("result----->",result);
  assert.ifError(err);
  //console.log('got user profile with email ' + result.rows[0].email);
});

let routes = require('./routes.json'); // Loaded with utils/routes-loader.js
const container = document.getElementById('container');

function renderComponent(component) {
  ReactDOM.render(<Provider store={store}>{component}</Provider>, container);
}

// Find and render a web page matching the current URL path,
// if such page is not found then render an error page (see routes.json, core/router.js)
function render(location) {
  router.resolve(routes, location)
    .then(renderComponent)
    .catch(error => router.resolve(routes, { ...location, error }).then(renderComponent));
}
 continued code ......

我正在获取客户端控制台,但之后我收到类似

的错误
connection.js:122 Uncaught TypeError: net.Socket is not a constructor(…)

我在这里遗漏了什么。或者这段代码应该写在其他任何地方。 ?

由于

1 个答案:

答案 0 :(得分:1)

cassandra-driver意味着在Node.js服务器上运行,而不是在客户端(即浏览器)中运行。

因此,您需要为您的客户端代码(使用React,Redux或其他)创建某种Node.js服务器以进行通信。例如,在典型的Web应用程序设置中,浏览器中的客户端代码将为:

  • 对服务器进行HTTP调用
  • 服务器将处理该呼叫并使用cassandra-driver获取该呼叫的相应数据
  • 然后在HTTP响应中将适当的数据发送回客户端

这是对事物设置方式的一个非常简单的简化,但这种类型的通信对于许多Web应用程序来说很常见,无论他们是使用Cassandra,Postgres还是服务器上的任何数据库。