Michael,
My apologies.
I have a post call as below:
var request = require('request');
request.post({
url: 'http://localhost:3000/addUser',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify([{
props:{
'name': 'shekar',
'email': '[email protected]',
'sex': 'male'
},
'payload': [{'friend1': 'loki'}, {'friend2': 'abc'}]
}
]
)
}, function(error, response, body){
console.log(body);
});
Can you please explain what you mean by using parameters?
I construct the json using
app.post('/addUser', function(req, res, next) {
if (req.query){
...
{ props: { name: 'shekar', email: '[email protected]', sex: 'male' },
payload: [ { friend1: 'loki' }, { friend2: 'abc' } ] }
On Thursday, 13 February 2014 03:21:38 UTC-8, Michael Hunger wrote:
>
> #0 use parameters
> #1 This is not valid cypher, no quotes around keys.
> #2 no null values -> undefined
> #3 don't do merge on more properties than the idenfier, set the others via
> ON CREATE SET otherwise you won't find duplicates that have other data
> #4 don' use "type" fields that's what labels are for
>
> MERGE (user:Person:User {email: {props}.email} ) ON CREATE user = {props}
> SET user.created = timestamp() ON MATCH SET user.lastSeen = timestamp()
> RETURN user'
>
>
> use as query parameters:
>
> {props: { name: 'shekar',
>> email: '[email protected] <javascript:>'}}
>>
>
>> Just leave off non-defined properties
>
> ->
>
> friends: undefined,
>> payload: 'null',
>>
>
> don't use type properties but a label
> ->
>
> ,
>> type: 'user'
>>
> Am 13.02.2014 um 12:18 schrieb Shekar Tippur <[email protected]<javascript:>
> >:
>
> tried with JSON.stringify
>
> var cypherQuery='MERGE (user:Person ' + node + ') ON CREATE SET
> user.created = timestamp() ON MATCH SET user.lastSeen = timestamp() RETURN
> user';
>
>
> Cypher query - MERGE (user:Person {"name":"shekar","email":"
> [email protected] <javascript:>","payload":"null","type":"user"}) ON CREATE
> SET user.created = timestamp() ON MATCH SET user.lastSeen = timestamp()
> RETURN user
>
> resulting error:
> errorError: Invalid input '"': expected whitespace, an identifier, '}' or
> UnsignedInteger (line 1, column 21)
> "MERGE (user:Person
> {"name":"shekar","email":"[email protected]<javascript:>","payload":"null","type":"user"})
>
> ON CREATE SET user.created = timestamp() ON MATCH SET user.lastSeen =
> timestamp() RETURN user"
> ^
>
> - Shekar
>
>
> On Thursday, 13 February 2014 03:04:57 UTC-8, Shekar Tippur wrote:
>>
>> Michael -
>> I have trimmed my node object
>>
>> { name: 'shekar',
>> email: '[email protected] <javascript:>',
>> friends: undefined,
>> payload: 'null',
>> type: 'user' }
>>
>> I am not sure why the merge statement is being interpreted as an array.
>> Here is how I am constructing the merge statement
>>
>> var cypherQuery='MERGE (user:Person ' + node + ') ON CREATE SET
>> user.created = timestamp() ON MATCH SET user.lastSeen = timestamp() RETURN
>> user';
>>
>> and the resulting cypher is ..
>>
>> "MERGE (user:Person [object Object]) ON CREATE SET user.created =
>> timestamp() ON MATCH SET user.lastSeen = timestamp() RETURN user"
>>
>> - Shekar
>>
>> On Thursday, 13 February 2014 00:58:48 UTC-8, Michael Hunger wrote:
>>>
>>> At least you cannot do maps or nested collections as properties.
>>> You would have to model them differently (e.g. individual properties or
>>> a linked node or serialized)
>>>
>>> Michael
>>>
>>> Am 12.02.2014 um 20:02 schrieb Shekar Tippur <[email protected]>:
>>>
>>> Michael -
>>>
>>> I have taken it directly from https://www.npmjs.org/package/node-neo4j
>>>
>>> without converting to a string, I get the below error
>>>
>>> Error: Response body is empty
>>>
>>> There is nothing on neo4j log.
>>>
>>> - Shekar
>>>
>>> On Wednesday, 12 February 2014 10:00:56 UTC-8, Michael Hunger wrote:
>>>>
>>>> Where did you get that example from?
>>>> Why do you convert the map into a string?
>>>> Try Aseems examples first and work from there
>>>>
>>>> Michael
>>>>
>>>> Sent from mobile device
>>>>
>>>> Am 12.02.2014 um 18:44 schrieb Shekar Tippur <[email protected]>:
>>>>
>>>> Hello -
>>>>
>>>> I am trying to insert a node ..
>>>>
>>>> {"name":"shekar","email":"[email protected]
>>>> ","payload":[{"friend":"blah"},{"friend":"abc"}],"type":"user"}
>>>>
>>>> I am using node-neo4j library.
>>>>
>>>> Here is the code snippet..
>>>>
>>>> var encodedNode=JSON.stringify(node);
>>>> console.log("In addNode");
>>>> console.log(encodedNode);
>>>> db.insertNode(encodedNode,function(err, addnode){
>>>> if(err) throw cb("error in inserting node " + err,{status:err,
>>>> id:null});
>>>>
>>>> // Output node properties.
>>>> console.log(addnode.data);
>>>>
>>>> // Output node id.
>>>> console.log(addnode.id);
>>>> cb(null,{status:"Node added",id:addnode.id});
>>>> });
>>>>
>>>> Appreciate any help ..
>>>>
>>>> I see a exception on the logs
>>>>
>>>> 09:40:23.905 [qtp476501171-1057] WARN o.e.jetty.servlet.ServletHandler
>>>> - /db/data/node
>>>> java.lang.ArrayIndexOutOfBoundsException: 1
>>>> at
>>>> org.neo4j.server.rest.repr.formats.UrlFormFormat.readMap(UrlFormFormat.java:99)
>>>>
>>>> ~[neo4j-server-2.0.0.jar:2.0.0]
>>>> at
>>>> org.neo4j.server.rest.web.RestfulGraphDatabase.createNode(RestfulGraphDatabase.java:239)
>>>>
>>>> ~[neo4j-server-2.0.0.jar:2.0.0]
>>>> at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) ~[na:na]
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>
>>>> ~[na:1.7.0_45]
>>>> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_45]
>>>> at
>>>> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> org.neo4j.server.rest.transactional.TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:132)
>>>>
>>>> ~[neo4j-server-2.0.0.jar:2.0.0]
>>>> at
>>>> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at
>>>> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699)
>>>>
>>>> ~[jersey-server-1.9.jar:1.9]
>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>> ~[javax.servlet-3.0.0.v201112011016.jar:na]
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:698)
>>>> ~[jetty-servlet-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1506)
>>>>
>>>> ~[jetty-servlet-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)
>>>>
>>>> ~[neo4j-server-2.0.0.jar:2.0.0]
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1477)
>>>>
>>>> ~[jetty-servlet-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)
>>>> [jetty-servlet-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:211)
>>>>
>>>> [jetty-server-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1096)
>>>>
>>>> [jetty-server-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:432)
>>>> [jetty-servlet-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:175)
>>>>
>>>> [jetty-server-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1030)
>>>>
>>>> [jetty-server-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136)
>>>>
>>>> [jetty-server-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
>>>> [jetty-server-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
>>>>
>>>> [jetty-server-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at org.eclipse.jetty.server.Server.handle(Server.java:445)
>>>> [jetty-server-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:268)
>>>> [jetty-server-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:229)
>>>>
>>>> [jetty-server-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:358)
>>>>
>>>> [jetty-io-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:601)
>>>>
>>>> [jetty-util-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at
>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:532)
>>>>
>>>> [jetty-util-9.0.5.v20130815.jar:9.0.5.v20130815]
>>>> at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Neo4j" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Neo4j" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
> --
> You received this message because you are subscribed to the Google Groups
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
--
You received this message because you are subscribed to the Google Groups
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.