代码之家  ›  专栏  ›  技术社区  ›  sigil

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

  •  0
  • sigil  · 技术社区  · 6 年前

    server.js

    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 .

    思考 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.com:8000/other_route_endpoint

    Cannot GET /other_route_endpoint
    

    如何将其他文件中的端点添加到 ,所以我可以将它的一些端点移动到这些子文件中?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Ryan    6 年前

    首先,主文件不应该使用路由器。将线路改为 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

    推荐文章