node.js无法写入hbase数据库

我现在在写一个写入hbase的操作系统。前端是vue.js,后端是node.js,数据库RT,是hbase。我目前前端可以发送数据到后端接收,但是在写入的时候,总是报错。

Users/user/Desktop/web/node_modules/hbase/lib/row.js:169
    return args[0].apply(this, [null, cells]);

TypeError: Cannot read property 'apply' of undefined

    at client.connection.get (/Users/user/Desktop/web/node_modules/hbase/lib/row.js:169:20)
    at IncomingMessage.res.on (/Users/user/Desktop/web/node_modules/hbase/lib/connection.js:142:16)
    at IncomingMessage.emit (events.js:187:15)
    at endReadableNT (_stream_readable.js:1091:14)
    at process._tickCallback (internal/process/next_tick.js:174:19)
    

node.js:可以写入数据库,但会停止程序并报出上边的错误。

router.post('/uploadHbase', function(req, res){
  var form = new formidable.IncomingForm();
  form.parse(req, function (err, fields, files) {

    console.log(fields);//这里就是post的XXX 的数据
    client.table('test2')
      .create('col_family', function(err, success){
        this
          .row('rowkey1')
          .put('col_family:model_contents', 'testContent', function(err, success) {
            this.get(fields.colFamilyPut, function (err, cells) {
              this.exists(function (err, exists) {
                assert.ok(exists);
              });
            });
          });
      });


  });

  res.json({
    status:'0',
    msg:'',
  });


});

这个是在同一个路由下可以运行的,提交的是不同路由

router.post('/upload', function(req, res){

  var form = new formidable.IncomingForm();
  form.uploadDir = path.join(__dirname, '/upload');

  form.parse(req, function (err, fields, files) {

    console.log(fields);//这里就是post的XXX 的数据

    fs.readFile(files.file.path, 'utf8', (err, data) => {
    if (err) {
        console.log(err);
      }

      var obj = JSON.parse(data);
     console.log(obj);

      //Put to hbase
      client.table(‘test’)
        .create('col_family', function(err, success){
         this
           .row('rowkey')
            .put('col_family:model_contents', JSON.stringify(obj), function(err, success) {
              this.get(fields.colFamilyPut, function (err, cells) {
                this.exists(function (err, exists) {
                  assert.ok(exists);
                  console.log(success);
                });
              });
           });
        });
    });

同在一个路由下的另一个post就完全没有问题,可以写入hbase数据库,完全不知道啥原因。

阅读 2.2k
2 个回答

ok。这个问题的报错点在于断言测试(assert).

哪个post可以 能不能拿出对比来 老哥

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题