关于node js express框架中的路由定义

阿西什·乔汉

我正在 app.js 文件中设置路由。我正在通过 routes/flights.js 文件中的航班列表的路线。但是当我在所有路由的底部定义路由时我面临的问题是我收到 404 错误但是我在所有路由的顶部传递了相同的路由定义然后它正在工作。请帮我处理下面给出的两个文件的代码。提前致谢。

app.js 文件:

var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var flightRouter = require('./routes/flight');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(function(req, res, next){
  res.set('X-Powered-By', 'Flight Tracker');
  next();
});
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/flight', flightRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

路线/flight.js

var express = require('express');
var router = express.Router();
var flights = require('../modules/data');
var flight = require('../modules/flight');

for (var number in flights) {
    flights[number] = flight(flights[number]);
}

router.get('/list', function (req, res, next) {
    // console.log('in list');
    res.render('flight', {
        title: 'All flights',
        flights: flights
    });
});

router.get('/:id', function (req, res, next) {
    var number = req.params.id;
    if (typeof flights[number] === 'undefined') {
        res.status(404).json({
            status: 'error'
        });
    } else {
        res.json(flights[number].getInformation());
    }
});

router.put('/:id/arrived', function (req, res, next) {
    var number = req.params.id;
    if (typeof flights[number] === 'undefined') {
        res.status(404).json({
            status: 'error'
        });
    } else {
        flights[number].triggerArrive();
        res.json({
            status: 'Done'
        });
    }
});


module.exports = router;
router.get('/list', function (req, res, next) {
    res.render('flight', {
        title: 'All flights',
        flights: flights
    });
});

上面这行代码需要在 routes/flight.js 中其他路由的底部工作

所以呢

如果你的意思是在 Flights.js 文件中......这可能是因为 /:id 也捕获了 /list 路由,因为 :id 没有任何约束,这就是为什么它必须在 /:id 之前定义然后路由器将匹配 /list,如果不匹配,它将转到 /:id

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关于 node.js 的 Hyperledger Fabric SDK 类型定义

来自分类Dev

关于Node.js中的全局变量

来自分类Dev

关于node.js中async.waterfall的问题

来自分类Dev

关于Node.js中的异步执行流

来自分类Dev

关于node.js中async.waterfall的问题

来自分类Dev

app.js中定义的变量是否可以通过Express和node js中的路由功能访问?

来自分类Dev

在一个路由文件中定义的Express-session在app.js Node JS中不可用

来自分类Dev

在app.js中定义的变量是否可以通过Express和node js中的路由功能访问?

来自分类Dev

关于基于令牌的身份验证实现的困惑[Node js Express js]

来自分类Dev

在node.js中内置访问日志(express框架)

来自分类Dev

在node.js中内置访问日志(express框架)

来自分类Dev

使用Express和Passport JS重定向Node中的路由

来自分类Dev

关于Node.js,Express,Mongoose的错误(对象没有功能)

来自分类Dev

关于带有Web套接字的PHP与与node.js或node.JS中的整个站点集成的思考

来自分类Dev

使用express node.js的路由,但express.Router变得未定义

来自分类Dev

已经在我的 express 中为 node.js 设置 cors 但仍然给出关于 cors 的相同错误

来自分类Dev

关于 node.js 中回调和 .toArray 的一些混淆

来自分类Dev

Node.js 和 express Rest api 来创建自定义字段路由

来自分类Dev

ReferenceError:未在带有express的node.js中定义

来自分类Dev

ReferenceError:未在带有express的node.js中定义

来自分类Dev

node.JS Express护照路由

来自分类Dev

Node.js + Express:指定路由

来自分类Dev

node.JS Express护照路由

来自分类Dev

关于自定义node.js CLI工具配置文件的建议/最佳实践:位置和命名?

来自分类Dev

关于通过Hyperledger Fabric中的注册为Node.js客户端创建的管理员/用户身份

来自分类Dev

Node.js框架和Express.js

来自分类Dev

如何在Node.js Express框架中拦截获取请求

来自分类Dev

在Node.js Express框架中的不同端口上运行多个应用程序

来自分类Dev

Node.js Express路由/控制器中基于单元测试承诺的代码

Related 相关文章

  1. 1

    关于 node.js 的 Hyperledger Fabric SDK 类型定义

  2. 2

    关于Node.js中的全局变量

  3. 3

    关于node.js中async.waterfall的问题

  4. 4

    关于Node.js中的异步执行流

  5. 5

    关于node.js中async.waterfall的问题

  6. 6

    app.js中定义的变量是否可以通过Express和node js中的路由功能访问?

  7. 7

    在一个路由文件中定义的Express-session在app.js Node JS中不可用

  8. 8

    在app.js中定义的变量是否可以通过Express和node js中的路由功能访问?

  9. 9

    关于基于令牌的身份验证实现的困惑[Node js Express js]

  10. 10

    在node.js中内置访问日志(express框架)

  11. 11

    在node.js中内置访问日志(express框架)

  12. 12

    使用Express和Passport JS重定向Node中的路由

  13. 13

    关于Node.js,Express,Mongoose的错误(对象没有功能)

  14. 14

    关于带有Web套接字的PHP与与node.js或node.JS中的整个站点集成的思考

  15. 15

    使用express node.js的路由,但express.Router变得未定义

  16. 16

    已经在我的 express 中为 node.js 设置 cors 但仍然给出关于 cors 的相同错误

  17. 17

    关于 node.js 中回调和 .toArray 的一些混淆

  18. 18

    Node.js 和 express Rest api 来创建自定义字段路由

  19. 19

    ReferenceError:未在带有express的node.js中定义

  20. 20

    ReferenceError:未在带有express的node.js中定义

  21. 21

    node.JS Express护照路由

  22. 22

    Node.js + Express:指定路由

  23. 23

    node.JS Express护照路由

  24. 24

    关于自定义node.js CLI工具配置文件的建议/最佳实践:位置和命名?

  25. 25

    关于通过Hyperledger Fabric中的注册为Node.js客户端创建的管理员/用户身份

  26. 26

    Node.js框架和Express.js

  27. 27

    如何在Node.js Express框架中拦截获取请求

  28. 28

    在Node.js Express框架中的不同端口上运行多个应用程序

  29. 29

    Node.js Express路由/控制器中基于单元测试承诺的代码

热门标签

归档