Archivo separado para rutas en expreso.

Me preguntaba cómo muevo todas mis rutas de API en Express a un archivo de routes.js separado de mi archivo server.js

Tengo una larga lista de rutas api que utilizan app.use() para cada ruta. Por lo tanto, cada ruta está en su propio archivo, por ejemplo, movies.js , movies.js , pero cuando los enumero, se obtiene una larga lista en server.js

Por lo tanto, quiero eliminar la lista de puntos finales de api de server.js que se encuentra a continuación en un archivo routes.js .

Esto es lo que tengo actualmente:

server.js

 import path from 'path' import express from 'express' import webpack from 'webpack' import webpackDevMiddleware from 'webpack-dev-middleware' import webpackConfig from './webpack.config.dev' const app = express(); /* api endpoints, can be many more, I want them in routes.js */ app.use('/api/movies', require('./src/api/routes/movies')) app.use('/api/movie', require('./src/api/routes/movie')) app.use(webpackDevMiddleware(webpack(webpackConfig), { publicPath: webpackConfig.output.publicPath })); app.use('/public', express.static(__dirname + '/public')) app.get('*', function(req, res) { res.sendFile(path.join(__dirname, 'index.html')); }); app.listen(3000, 'localhost', function (err) { if (err) { console.log(err); return; } }) 

Un ejemplo de ruta

peliculas.js

 var express = require('express'); var request = require("request"); var router = express.Router(); router.get('/', function(req, res) { res.json({}) }); module.exports = router; 

Puedes intentar usar el siguiente enfoque modular. Defina los archivos del controlador que tienen lógica por característica. por ejemplo, la película.

movieController.js

 module.exports = { getMovie : function(req, res){ //do something }, getMovies : function(req, res){ //do something }, postMovie : function(req, res){ //do something } } 

Luego, haga referencia a ese controlador en los archivos de rutas y simplemente conecte esas funciones.

rutas.js

 var express = require('express'); var movieCtrl = require('./movieController'); var router = express.Router(); router.route('/movie').get(movieCtrl.getMovie); router.route('/movie').post(movieCtrl.postMovie); router.route('/movies').get(movieCtrl.getMovies); module.exports = router; 

Y, en app.js, monte las rutas a la ubicación adecuada, por ejemplo, / api

app.js

 var routes = require('./routes'); app.use('/api', routes);