Articles of 密码

如何将variables作为parameter passing给密码查询(neo4j)

我想传递一个variables(值从请求体)作为参数的密码查询,但我不知道是否(以及如何)这是可能的。 我已经尝试了几件事情,一个“正常”的密码查询与硬编码string参数是完美的工作,但是当我想通过variables作为参数,我会得到一个错误结构(127,[[对象对象]]) 。 我在Neo4j 3.1上。 结合构build密码查询的node.js-server。 这是一个片段.. var user_firstname = req.body.firstname; var user_lastname = req.body.lastname; var user_city = req.body.city; session .run("CREATE (n:Person {firstname: {firstname}, lastname: {lastname}, city: {city}})", { firstname: user_firstname, lastname: user_lastname, city: user_city }) 在此先感谢您的帮助,欢呼!

如果存在结束节点,则创build节点和关系(否则仅创build第一个节点)

我有一个应用程序通过消息队列发送数据库写入命令给工作人员(量很大),所以不能保证它们将被接收的顺序。 我有两个节点,例如,“帐户”和“媒体”。 在这个假设的应用程序中,用户可以匿名上传媒体,这会自动为他们创build一个帐户,然后他们可以随后将其关联。 两个信息,一个用于帐户,另一个用于媒体(几乎可以肯定地由不同的工作人员)。 他们两个都不知道对方是否写下来。 我需要写一个将在每个工人上运行的查询,其中: 创build新的帐户/媒体 如果其他节点存在, POSTED_BY两者之间创buildPOSTED_BY关系 如果其他节点不存在,则只创build当前节点 返回新创build的节点 因此,无论接收到每条消息的顺序如何,第一个查询都将创build节点A,而第二个查询将创build节点B +关系。 如果我在同一个查询中创build它们,那将很简单: CREATE (m:Media { url: 'xyz.jpg' })-[:POSTED_BY]->(u:Account { username: 'johndoe' }) RETURN m,u 我已经看了CREATE UNIQUE和MERGE ,但是如果它不存在,它们似乎都会创build节点,而不是只是无所事事。

有没有办法将自定义encryptionalgorithm添加到nodejsencryption模块? 怎么样?

我需要为每个上传的文件生成一个哈希。 散列值必须与为给定文件生成的散列值git相同(这是一个俗称的sha1变体)。 我看着/nodejs-v0.10.22-src/core-modules-sources/lib/crypto.js 。 库指的是本地绑定。 为了便于携带,我不想依赖本地代码。 有没有一种方法可以将自定义encryptionalgorithm添加到JavaScript中的nodejsencryption模块中,以便我可以执行以下操作: var hash = crypto.createHash('githash'); hash.update('…');

在Javascript中的Neo4j:参数不能查询

使用thingdom的neo4j插件时遇到了麻烦。 看起来插件不能识别{mlabel}和{mdata}作为占位符。 代码和错误如下。 非常感谢你! var query = [ 'CREATE (p:{mlabel} {{mdata}})', 'RETURN p' ].join('\n'); var params = { mlabel : 'person', mdata : { name: 'Pete', surname: 'Strutton', age: 35 } }; this.db.query(query, params, function (err, results) { if (err) throw err; return result; }); Error: Invalid input '{': expected whitespace or a label name […]

nodejsencryption模块,hash.update()将所有input存储在内存中

我有一个API路由代理从浏览器/客户端上传到AWS S3的file upload。 此API路由尝试在上传文件时对其进行stream式传输,以避免在服务器上caching文件的全部内容。 但是,路由也会尝试计算文件正文的MD5校验和。 随着文件的每个部分被分块, hash.update()方法被调用w / chunk。 http://nodejs.org/api/crypto.html#crypto_hash_update_data_input_encoding var crypto = require('crypto'); var hash = crypto.createHash('md5'); function write (chunk) { // invoked many times as file is uploaded hash.update(chunk); } function done() { // will hash buffer all chunks in memory at this point? hash.digest('hex'); } Hash的实例是否会缓冲文件的所有内容以执行散列计算(从而破坏了避免caching整个文件内存的目标)? 或者可以递增地计算MD5散列,而不需要整个input可用于执行计算?

Neo4j仅当where子句总是为真时才返回一个节点

考虑下面的Neo4j数据库例子: 节点是(篮子)(预订)和[:IS_BOOKED_IN] 现在预订看起来像这样: Booking {start:number,end:number} 如果您预定了某个东西,您可以select要预订哪个篮子,并在这两者之间创build关系[:IS_BOOKED_IN]。 这工作得很好。 现在我想检查我的下一个预订,如果任何篮子可用的时间框架,我select。 现在我正在用Cypher来做这个查询: MATCH(basket:Basket) – [:IS_BOOKED_IN] – >(booking:Booking)WHERE({start} <booking.start AND {end} <booking.start)OR({end}> booking.end AND {start}> booking.end)返回篮子 {开始}和{结束}是数字 正如你所看到的,这将会像预期的那样工作,但前提是只有一个预订。 只要有更多的预订,我会得到相同的篮子,即使它显然不可用,从而使我的查询无用。 发生这种情况是因为在WHERE子句失败时查询不会停止,而是再次使用相同的Basket节点,并检查其他预订,这些预订不会失败,然后将我退还给篮子。 我怎么能改变这个,如果WHERE子句总是正确的,我怎么能告诉Neo4j只返回篮子给我? 或者只是一次失败就跳过篮子。 任何想法表示赞赏,谢谢

Cypher查询返回匹配节点和可选关系

我试图find返回所有匹配的节点和他们可能有的任何关系的最优方法? 这是我的问题: 我需要返回创build项目的所有用户,所以 match (u : User)-[r:CREATE]->(p: Project) return u, collect(p) 很简单,但用户也可以有其他的关系,我想包括他们或可选的检查(返回true / false) 例如用户可能有关系build议,我不想限制它,但如果检查它是否存在一个什么节点? 理想情况下,我的回报表如下所示: USER1 – PROJECT(S) – 推荐用户 USER2 – PROJECT(S) – NULL(无人推荐)

NodeJS:Crypto – 无论input什么,我为什么得到相同的散列?

我正在使用encryption哈希一个string与盐200次。 我有一个奇怪的行为,散列总是相同的。 我现在已经回到了正确的结果,但是我想知道是否有人能告诉我为什么。 这是每次产生相同散列的原始代码(假定相同的盐): const crypto = require('crypto'); console.log(hashPwd('abc', '11111111111111111111111111111111')); console.log(hashPwd('def', '11111111111111111111111111111111')); function hashPwd(password, hexSalt){ var salt = hex2a(hexSalt); var hashPwd = crypto.createHash('sha256').update(salt + password); for(var x =0; x < 199; x++){ hashPwd = crypto.createHash('sha256').update(salt + hashPwd); } return hashPwd.digest('hex'); } //From: http://stackoverflow.com/questions/3745666/how-to-convert-from-hex-to-ascii-in-javascript function hex2a(hexx) { var hex = hexx.toString();//force conversion var str = ''; […]

在Neo4j中根据Where条件插入数据

我想插入基于其他lebel/collection 。 我有2个lebel/collection ( 单元,用户 ),他们之间有1个关系( Business ),我想根据他们的关系将数据插入到unit 。 我的密码查询如下: MATCH (u:Units)<-[:Business]-(s:Users) WHERE s.id = 'some-user-id' WITH count(u) as numOfUnit // return number of units connected with user // if numOfUnit is smaller then 2 // insert/merge new data into Units lebel/collection // with relation between them MERGE ( bu:Units {name:'some-name-01', info:'some-info-01' }) WHERE numOfUnit […]

HTTPS密码在节点js 0.4

节点0.2.6方式: var credentials = crypto.createCredentials({ "key": SSLKey, "cert": SSLCert, "ca": Ca, "password": SSLKeyPass }) var client = http.createClient(apiPort, host, true, credentials) node 0.4 way: var options = { host: apiHost, port: apiPort, method: 'GET', path: uri, headers: {host: host}, key:SSLKey, cert:SSLCert, ca:Ca, password:SSLKeyPass } var request = https.request(options, function (response) { 正如你所看到的,有一个需要的密码,我不知道密码应该在节点0.4的位置。 SSLKeyPass在节点0.4上的位置?