获取路由 – Nodejs

如果我想要在一个路由中进行GET请求,最好的方法是什么?

api.js

api.route('/guests') .get(function(req, res) { Guest.find(function(err, guests) { if (err) res.send(err); res.json(guests); }); }); 

routes.js

 app.get('/export', requiresLogin, function(req, res) { /* make a GET request to my api (eg.: 'api/guests') */ /* and save the 'guests' to a variable */ }); 

第一个scheme

您可以定义一个控制器guestCtrl.js并从api.jsroutes.js中的api.js调用该函数,而不是调用内部apis

guestCtrl.js

 module.exports = { getGuests : function(){ Guest.find(function(err, guests) { if (err) //handle error return []; else return guests; }); } } 

api.js

 //path of guests.js var guestCtrl = require('guestCtrl.js'); api.route('/guests').get(function(req, res) { return guestCtrl.getGuests(); }); 

routes.js

 var guestCtrl = require('guestCtrl.js'); app.get('/export', requiresLogin, function(req, res) { var guests = guestsCtrl.getGuests(); // do whatever you like to do with guests }); 

第二个scheme

如果你真的想要使用内部的API,那么你可以使用request模块。

例如

routes.js

 var request = require('request'); app.get('/export', requiresLogin, function(req, res) { // you can put the hostname and port here request('http://127.0.0.1:3000/api/guests', function(err, body, response){ var guests = body; // and save the 'guests' to a variable }); });