独立的快递路线文件

我想知道如何将所有我的api路由快递到我的server.js文件单独的routes.js文件

我有一个使用app.use()为每个路线api路线长列表。 所以每个路由都在它自己的文件中,例如movies.jsmovie.js但是当我列出这些文件时,它会在server.js

所以我想从下面的server.js删除api端点部分的列表到一个routes.js文件。

这是我目前的:

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; } }) 

一个示例路线

movies.js

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

您可以尝试使用以下模块化方法。 定义每个function具有逻辑的控制器文件。 比如电影。

movieController.js

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

然后,在路由文件中引用该控制器,并简单地插入这些function。

routes.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; 

并且,在app.js中,将路线安装到合适的位置,例如/ api

app.js

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