最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何从另一个.js文件添加Express路由端点?

运维笔记admin16浏览0评论

如何从另一个.js文件添加Express路由端点?

如何从另一个.js文件添加Express路由端点?

我有一个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.jsaudio.js

思考this solution可能会有所帮助,我创建了另一个文件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:8000/other_route_endpoint时,我收到此错误:

Cannot GET /other_route_endpoint

如何将其他文件中的端点添加到server.js中,以便将其中的一些端点移动到这些子文件中?

回答如下:

首先,您的主文件不应该使用路由器。将行更改为app.use('/other_route',require('./other_route').router);

第二:您在路由文件中使用router.use设置的每条路径都将相对于app.use中指定的路径。见https://expressjs/en/guide/routing.html#express-router

例如,如果您在主文件中有此

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

这在bar.js

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

然后相应的端点将是/foo/bar

发布评论

评论列表(0)

  1. 暂无评论