使用get&时的Couchbase网络错误在bucket.js中设置 [英] Couchbase network error when using get & set in bucket.js
本文介绍了使用get&时的Couchbase网络错误在bucket.js中设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个简单的js脚本:
I have this simple js script:
var cb = require('couchbase');
var bucket;
var connectionSettings = {
'user':'test-bucket',
'password':'test',
'hosts':['localhost:8091'],
'bucket':'test-bucket'
};
cb.connect(connectionSettings, function(e, bucket) {
if (e) {
errorHandler('connect', e);
} else {
console.log('Connection established!');
bucket.get('testObject', function(e, doc) {
if(e) {
errorHandler('get', e);
} else {
console.log(doc);
}
});
}
});
function errorHandler(from, e) {
console.log('Function: ' + from);
console.log(e.message);
console.log(e.stack);
}
执行该命令后,将建立连接,但是在此测试用例中尝试获取ID为'a'的文档时,出现以下错误:
After executing it a connection is being established, but when I try to get the document with id 'a' in this test case I get the following error:
syd@HP-Notebook:~/Desktop$ node test.js
Connection established!
Function: get
Network error
Error: Network error
at makeError (/home/syd/node_modules/couchbase/lib/bucket.js:578:18)
at getParsedHandler (/home/syd/node_modules/couchbase/lib/bucket.js:625:17)
node: ../src/ioplugin.cc:496: virtual int Couchnode::IoOps::updateEvent(lcb_socket_t, void*, short int, void*, void (*)(lcb_socket_t, short int, void*)): Assertion `socket != __null' failed.
Aborted (core dumped)
此外,这是在bucket.js中发生这些错误的代码段.
Furthermore here are the code snippets where these errors occur in bucket.js.
578:
function makeError(conn, errorCode) {
// Early-out for success
if (errorCode == 0) {
return null;
}
// Build a standard NodeJS Error object with the passed errorCode
var errObj = new Error(conn.strError(errorCode)); // <- 578 error here
errObj.code = errorCode;
return errObj;
}
625:
function getParsedHandler(data, errorCode, key, cas, flags, value) {
// if it looks like it might be JSON, try to parse it
if (/[\{\[]/.test(value)) {
try {
value = JSON.parse(value);
} catch (e) {
// console.log("JSON.parse error", e, value)
}
}
var error = makeError(data[1], errorCode); // <- 625 error here
data[0](error, value, {
id : key,
cas: cas,
flags : flags
});
}
任何想法为什么会这样?P.S.我从PHP提取数据没有问题.
Any ideas why this is happening ? P.S. I have no issues mining data from PHP.
推荐答案
It fails for the same reason as in this question. Downgrading libcouchbase to 2.0.7 should solve issue.
UPD:已在新的ouchbase nodejs库版本1.0.0-beta中修复".
UPD: "Fixed" in new couchbase nodejs library release 1.0.0-beta.
这篇关于使用get&时的Couchbase网络错误在bucket.js中设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文