Проблемы экспресс-маршрутизации - PullRequest
0 голосов
/ 06 октября 2018

Я очень новичок в высказывании и сталкиваюсь с проблемами при настройке правильной маршрутизации.Это домашнее задание, поэтому файл маршрутизатора уже был написан, но есть файл express.js, который мы должны заполнить, чтобы вызывать API, когда по этому адресу делается запрос get / put / post / delete.Файл маршрутизатора настроен так:

var listings = require('../controllers/listings.server.controller.js'), 
    getCoordinates = require('../controllers/coordinates.server.controller.js'),
    express = require('express'), 
    router = express.Router();

/* 
  These method calls are responsible for routing requests to the correct request handler.
  Take note that it is possible for different controller functions to handle requests to the same route.
 */
router.route('/')
  .get(listings.list)
  .post(getCoordinates, listings.create);

/*
  The ':' specifies a URL parameter. 
 */
router.route('/:listingsId')
  .get(listings.read)
  .put(getCoordinates, listings.update)
  .delete(listings.delete);

/*
  The 'router.param' method allows us to specify middleware we would like to use to handle 
  requests with a parameter.

  Say we make an example request to '/listings/566372f4d11de3498e2941c9'

  The request handler will first find the specific listing using this 'listingsById' 
  middleware function by doing a lookup to ID '566372f4d11de3498e2941c9' in the Mongo database, 
  and bind this listing to the request object.

  It will then pass control to the routing function specified above, where it will either 
  get, update, or delete that specific listing (depending on the HTTP verb specified)
 */
router.param('listingId', listings.listingByID);

module.exports = router;

И файл express.js выглядит так:

var path = require('path'),  
    express = require('express'), 
    mongoose = require('mongoose'),
    morgan = require('morgan'),
    bodyParser = require('body-parser'),
    config = require('./config'),
    listingsRouter = require('../routes/listings.server.routes'), 
    getCoordinates = require('../controllers/coordinates.server.controller.js');

module.exports.init = function() {
  //connect to database
  mongoose.connect(config.db.uri, {useMongoClient: true});

  //initialize app
  var app = express();

  //enable request logging for development debugging
  app.use(morgan('dev'));

  //body parsing middleware 
  app.use(bodyParser.json());

  /* server wrapper around Google Maps API to get latitude + longitude coordinates from address */
  app.post('/api/coordinates', getCoordinates, function(req, res) {
    res.send(req.results);
  });

  This is the part I can't figure out:
  /* serve static files */
  app.get('/listings', listingsRouter, function(req, res){
    res.send(req.get('/'))
  });

  /* use the listings router for requests to the api */


  /* go to homepage for all routes not specified */ 

  return app;
};  

Я просто не уверен, как использовать маршруты вФайл listsRouter с объектами req и res, и я не могу найти примеры программ, настроенных таким образом, чтобы помочь.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 06 октября 2018

Изменить следующие

app.get('/listings', listingsRouter, function(req, res){
    res.send(req.get('/'))
});

На

app.use('/listings', listingsRouter);

Express Router .Прокрутите вниз до секции express.Router для получения полной информации.

Надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...