Как добавить конечные точки маршрута Express из другого файла .js? - PullRequest
2 голосов
/ 07 марта 2019

У меня есть приложение Express, в файле которого server.js может быть 30 конечных точек GET и POST, например:

const express = require('express');
const app = express();
const http_port = 8000;

app.listen(http_port,()=>{
 console.log(`app listening on port ${http_port}`);
});

app.get('/create_something',function(req,res){
 createSomething();
 res.send('create');
});

app.post('/update_something',function(req,res){
 updateSomething();
 res.send('update');
});

//and so on for 30 more endpoints

Для простоты обслуживания я хочу разбить этот набор конечных точек на разные файлы, например, video.js и audio.js.

Мышление это решение может помочь, я создал другой файл other_route.js:

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

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

module.exports.router=router;

, а затем включить это в server.js, изменив мои первоначальные объявления на:

const express = require('express');
const app = express();
const http_port = 8000;
var router=express.Router();
router.use('/other_route',require('./other_route').router);

Но когда я посещаю myserver.com:8000/other_route_endpoint, я получаю эту ошибку:

Cannot GET /other_route_endpoint

Как добавить конечные точки из других файлов в server.js, чтобы я мог переместить некоторые из его многочисленных конечных точек в эти субфайлы?

1 Ответ

1 голос
/ 07 марта 2019

Во-первых, ваш основной файл не должен использовать маршрутизатор. Измените строку на app.use('/other_route',require('./other_route').router);.

Второе: каждый путь, который вы указали с помощью router.use в файле маршрутизации, будет относительно пути, указанного в app.use. Смотри https://expressjs.com/en/guide/routing.html#express-router

Например, если у вас есть это в вашем основном файле

app.use('/foo', require('./bar.js'));

А это в bar.js

router.get('/bar', /* do something */);

Тогда соответствующая конечная точка будет /foo/bar.

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