2016-12-22 2 views
0

Je suis nouveau sur ce sujet mais je veux toujours savoir comment aborder cela. Je souhaite créer un système utilisant la messagerie pour effectuer des opérations crud sur un serveur nodejs. Je connais le repos mais je n'arrive pas à comprendre comment le traduire en messagerie avec rabbitmq.Comment puis-je utiliser des opérations crud avec rabbitmq et nodejs?

modifier: Je pense que je dois faire mon questin un peu plus clair: Ce que je veux faire est d'envoyer un message produit par mon client Java en utilisant AMQP et rabbitmq à un serveur Node.js. Le message contient un objet JSON. Certaines données doivent être envoyées dans la base de données (mysql).

Mon code semble une sorte comme celui-ci (Java Producteur):

JSONObject obj = new JSONObject();  
      obj.put("fuellstand", behaelter_1.getFuellstand()); 
      obj.put("behaelter", behaelter_1.getId()); 
      obj.put("timestamp", currentTimestamp); 
    //String message = behaelter_1.getFuellstand()+" "+ behaelter_1.getId()+" "+currentTimestamp; 
      String message = obj.toJSONString(); 
    channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8")); 
    //channel.basicPublish("",QUEUE_NAME , , arg3); 
    System.out.println(message+" "+message.getBytes("UTF-8")); 

Et voilà comment mon serveur nodejs essaye de le consommer:

amqp.connect('amqp://localhost', function (err, conn) { 
if (err) { 
    console.log("fehler mit dem amqp host!") 
    throw(err); 
} else { 
    conn.createChannel(function (err, ch) { 
     if (err) { 
      console.log("failing to createChanel") 
      throw(err); 
     } else { 
      var q = 'alerts'; 
      ch.assertQueue(q, {durable: false}); 
      console.log(" [*] Waiting for something in %s. CTRL+C to end", q); 
      ch.consume(q, function (msg) { 
       console.log(msg); 
      }, {noAck: true}); 
     } 
    }); 
} 

});

la console renvoie les éléments suivants:

{ fields: { consumerTag: 'amq.ctag-G3vsZRIGRZJT1qntZ1hTuw', 
deliveryTag: 1, 
redelivered: false, 
exchange: '', 
routingKey: 'alerts' },properties: {},content: <Buffer 7b 22 66 75 65 6c 6c 73 74 61 6e 64 22 3a 32 32 2c 22 62 65 68 61 65 6c 74 65 72 22 3a 31 2c 22 74 69 6d 65 73 74 61 6d 70 22 3a 32 30 31 36 2d 31 32 ... > } 

mon seul problème à ce stade est de décoder la construction JSON j. Je ne comprends pas pourquoi je ne peux pas décoder le tampon. ou suis-je obtenir quelque chose de mal?

Répondre

0

Il se trouve que je devais utiliser le code suivant pour accéder au contenu du message msg.content.toString

maintenant je ne dois l'analyser en json pour accéder aux attributs json individuels

0

RabbitMQ n'est pas une base de données et ne prend pas en charge les opérations de CRUD