获取路由 – 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.js
和routes.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 }); });