GithubHelp home page GithubHelp logo

Comments (4)

mkozjak avatar mkozjak commented on July 21, 2024

For some reason, the link from above does not work. Here's a working one: https://github.com/nats-io/node-nats/blob/master/lib/nats.js#L990.

Btw, I'm having the same complaint.

from nats.js.

aricart avatar aricart commented on July 21, 2024

@glurg @mkozjak the request seems reasonable. However there are few subtle considerations. The node API is provides support for:

  • Buffer
  • string
  • object (JSON)

The main issue is how are the types interpreted, and more importantly what happens when a non-node client receives the message.

By simply looking at JSON http://www.json.org from the javascript side, the following serializations are all valid JSON for purposes of decoding {}, [], "", number, true, false, null. Currently node nats is only allowing object/array types to be encoded as JSON, as any other type is rejected with an exception. [JSON.parse() is actually quite unhappy about some of these values]

Out of the above, it would seem that null is the proper default value if no value is provided to the publish call.

Before we do this, we'll have to see how other languages handle these values, because by specifying a format, we may also cause subtle issues on non-javascript clients that don't adhere correctly to deserialization/serialization (go unmarshaller can for example return nil). It will also create a possible situation for older node clients as some values not possible before would be.

from nats.js.

aricart avatar aricart commented on July 21, 2024

Did a bit more testing with the encoding. JSON.parse() was unhappy with some values that should have worked correctly. It had to do with the the quoting. IE. JSON.parse('""') is happy for node, while JSON.parse("''") is not.

from nats.js.

aricart avatar aricart commented on July 21, 2024

If values are not provided in request/reply or publish - the value is set to null.

from nats.js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.