不向 rethinkdb 插入数据
Posted
技术标签:
【中文标题】不向 rethinkdb 插入数据【英文标题】:not insert data to rethinkdb 【发布时间】:2015-07-20 07:40:41 【问题描述】:我正在尝试创建 NSQ 主题并在 rethinkdb 中插入数据,但我无法将数据插入 rethinkdb。谁能帮我。
**var nsq = require('nsqjs');
var r = require('rethinkdb');
var nsqdd = (process.env.NSQD_RETH || "localhost:4161").split(",");
var connection = null;
r.connect( host: 'localhost', port: 28015, db:'test', authKey:'', function(err, conn)
if (err) throw err;
connection = conn;
)
var eventreader;
eventreader = new nsq.Reader('ev_topic', 'ev_channel',
lookupdHTTPAddresses: nsqdd
);
eventreader.connect();
eventreader.on('message', function (msg)
r.table('rethinkdb_test').insert(msg.json()).run(conn);
console.log('Received message [%s]: %s', msg.id, msg.body.toString());
msg.finish();
);**
【问题讨论】:
【参考方案1】:您的第二个查询(insert
)似乎无权访问conn
变量。为此,您需要将事件阅读器代码放入连接函数的回调中。
var nsq = require('nsqjs');
var r = require('rethinkdb');
var nsqdd = (process.env.NSQD_RETH || "localhost:4161").split(",");
var connection = null;
r.connect( host: 'localhost', port: 28015, db:'test', authKey:'', function(err, conn)
if (err) throw err;
connection = conn;
// Event Reader functionality inside connect callback
var eventreader;
eventreader = new nsq.Reader('ev_topic', 'ev_channel',
lookupdHTTPAddresses: nsqdd
);
eventreader.connect();
eventreader.on('message', function (msg)
// Now we have access to the connection
r.table('rethinkdb_test').insert(msg.json()).run(conn);
console.log('Received message [%s]: %s', msg.id, msg.body.toString());
msg.finish();
);
);
【讨论】:
以上是关于不向 rethinkdb 插入数据的主要内容,如果未能解决你的问题,请参考以下文章
为啥 php mysqli 不向 Xampp 中的数据库插入数据
在 Scala Play 框架中映射 OneToMany 不向第二个表插入数据
如果我不向数据库插入数据,则在重新启动时获取 SqlCeException