Я очень новичок в высказывании и сталкиваюсь с проблемами при настройке правильной маршрутизации.Это домашнее задание, поэтому файл маршрутизатора уже был написан, но есть файл 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, и я не могу найти примеры программ, настроенных таким образом, чтобы помочь.Любая помощь будет оценена.