2017-06-06 1 views
0

Le serveur hapi.js que je suis en train d'exécuter est distribué dans deux ports. sur le port 4000comment consommer la réponse de repos hapi.js dans un itinéraire

je cours le serveur suivant

var handlebars = require("handlebars"); 
 
var Vision =require('vision'); 
 
var Inert = require('inert'); 
 
var Wreck = require('wreck'); 
 
var mongo = require('mongoskin'); 
 
var fs = require("fs"); 
 
var db = mongo.db("mongodb://localhost:27017/connect_db", {native_parser:true}); 
 
var ObjectID = mongo.ObjectID; 
 

 

 
// Create a server with a host and port 
 
exports.register = function (server, options , next) { 
 
//register view engine 
 
server.register(Vision); 
 
server.register(Inert); 
 

 
server.views({ 
 
    engines: { 
 
     'html': handlebars 
 
    }, 
 
    relativeTo :__dirname, 
 
    path: 'views', 
 
    isCached: false 
 
    }); 
 

 

 
server.route({ 
 
    method: 'GET', 
 
    path: '/', 
 
    handler: function (request, reply) { 
 
     db.collection("hello_collection").find().toArray(function(err, items) { 
 
      var body = {title: items}; 
 
      reply.view('index.html', body); 
 
      db.close(); 
 
     }); 
 
    } 
 
}); 
 
server.route({ 
 
    method: 'GET', 
 
    path: '/edit', 
 
    handler: function (request, reply) { 
 
    var params = request.query.id; 
 
    db.collection("hello_collection").find({"_id":ObjectID(params)}).toArray(function(err, items) { 
 
      
 
      reply.view('edit.html',items[0]); 
 

 
        db.close(); 
 
     });; 
 
    \t 
 
    } 
 
}); 
 

 
server.route({ 
 
    method: 'GET', 
 
    path: '/delete', 
 
    handler: function (request, reply) { 
 
     var params = request.query.id; 
 
\t db.collection("hello_collection").remove({ "_id": ObjectID(params)}); 
 
     db.close(); 
 
     reply().redirect("/"); 
 
    } 
 
    
 
}); 
 

 

 
server.route({ 
 
    method: 'POST', 
 
    path: '/new_data', 
 
    handler: function (request, reply) { 
 
    var data = request.payload; 
 
    db.collection("hello_collection").insert({ name: data.name, description: data.description, content: data.content }); 
 

 
    db.close(); 
 
    reply().redirect("/"); 
 
     
 
    } 
 
}); 
 
server.route({ 
 
    method: 'POST', 
 
    path: '/edit_data', 
 
    handler: function (request, reply) { 
 
    var data = request.payload; 
 
    db.collection('hello_collection').update({ "_id" : ObjectID(data.id) },{$set: { name : data.name, description : data.description , content : data.content } } 
 
); 
 
    db.close(); 
 
    reply().redirect("/"); 
 
     
 
    } 
 
}); 
 

 
server.route({ 
 
    method: "GET", 
 
    path: "/bower_components/{path1}/{path2}", 
 
    handler: function (request, reply) { 
 
    var Path = "./web/bower_components/" + request.params.path1 +"/" + request.params.path2; 
 
    console.log(Path); 
 
    reply.file(Path); 
 
    } 
 
}); 
 

 

 
    return next(); 
 
}; 
 

 
exports.register.attributes = { name: 'web' };

sur le port 5000 je cours la réponse api suivante

var handlebars = require("handlebars"); 
 
var mongo = require('mongoskin'); 
 
var db = mongo.db("mongodb://localhost:27017/connect_db", {native_parser:true}); 
 
var ObjectID = mongo.ObjectID; 
 
exports.register = function (server , options , next){ 
 
\t server.route({ 
 
\t \t method: 'GET', 
 
\t \t path: '/retrieve', 
 
\t \t handler : function(request, reply) { 
 
\t \t  if(!request.query.id){ \t \t 
 
          
 
\t \t \t db.collection("hello_collection").find({}).toArray(function(err, items){ 
 
\t \t \t \t 
 
\t \t \t \t reply(items); 
 
\t \t \t \t db.close(); 
 
\t \t \t }); 
 
\t \t \t 
 
\t \t  } 
 
\t \t  else{ 
 
\t \t \t var params = request.query.id; 
 
    \t \t \t db.collection("hello_collection").find({"_id":ObjectID(params)}).toArray(function(err, items) { 
 
      
 
      \t \t reply(items[0]); 
 

 
        db.close(); 
 
     }); 
 
\t 
 
\t \t  } \t 
 
      
 
\t \t } 
 
\t 
 
\t }); 
 
return next(); 
 
}; 
 
exports.register.attributes = { name : 'api'};

ma question est, comment puis-je lire les données de l'url http://localhost:5000/retrieve à l'adresse http://localhost:4000. J'ai essayé d'utiliser wreck mais il ne fonctionne pas

+0

Pouvez-vous mettre à jour votre question avec le code qui utilise épave pour faire la demande? – Cuthbert

Répondre

0

Essayez request:

Request("http://localhost:5000/retrieve", function(err, res, body){ 
    console.log(res.body); 
});