2016-03-02 19 views
9

tôi đã tự hỏi làm thế nào để di chuyển tất cả các tuyến đường api của tôi trong nhanh vào một tập tin riêng biệt routes.js từ server.js tập tin của tôitập tin riêng biệt cho các tuyến đường trong nhanh

Tôi có một danh sách dài các tuyến đường api sử dụng app.use() cho mỗi tuyến đường. Vì vậy, mỗi tuyến đường nằm trong tệp riêng của nó, ví dụ: movies.js, movie.js nhưng khi tôi liệt kê những nó làm cho một danh sách dài trong server.js

Vì vậy, tôi muốn xóa danh sách của phần điểm cuối api từ bên dưới server.js ra vào một tập tin routes.js.

Dưới đây là những gì tôi hiện có:

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

Một tuyến đường dụ

movies.js

var express = require('express'); 
var request = require("request"); 
var router = express.Router(); 

router.get('/', function(req, res) { 
    res.json({}) 
}); 

module.exports = router; 

Trả lời

28

Bạn có thể thử sử dụng fo phương pháp tiếp cận mô-đun. Xác định các tệp bộ điều khiển có logic cho mỗi đối tượng địa lý. ví dụ. bộ phim.

movieController.js

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

Sau đó, tham chiếu đó điều khiển trong các tập tin tuyến đường và chỉ cần cắm những chức năng.

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; 

Và, trong app.js, gắn kết các tuyến đường đến vị trí phù hợp, ví dụ/Api

app.js

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

nhờ mà làm việc độc đáo –

+0

Cảm ơn vì đã cứu ngày của tôi! –

+0

Nhân tiện, bạn có thể giúp tôi cách định tuyến tất cả "trang không tìm thấy" cho trang 404 của tôi không? –

Các vấn đề liên quan