为什么/ users在Express和Node中路由?

Startec

编辑:默认快递应用程序是这样的:

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var users = require('./routes/users');
----------------------------------------
These refer to files that look like:

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

/* GET home page. */
router.get('/', function(req, res) {
  res.render('index', { title: 'Express' });
});

module.exports = router;
------------------------------
var app = express();

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

// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
    app.use(function(err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});


module.exports = app;

但是,文档说:

// this middleware will not allow the request to go beyond it
app.use(function(req, res, next) {
  res.send('Hello World');
})

// requests will never reach this route
app.get('/', function (req, res) {
  res.send('Welcome');
})

所以我的问题是,为什么在已经指定/users了默认(即'/')路由的情况下,请求为什么会一直路由到该路由是因为routesusers不是功能吗?

在相关说明中,为什么还要指定/每次默认使用if?

最后,默认应用指定了'/users'路线:为什么不在路线中仅添加其他路径index.js我很困惑应用程序如何指定app.use('/users', users),然后在用户路由中指定

router.get('/', function(req, res) {
  res.send('respond with a resource');
});

什么是/对应?似乎所有请求/都将由第一个路由(使用routes默认文件的路由)处理

jfriend00

app.use()是中间件。您为其传递一个可选路径和一个函数,函数的工作是确定是否要将请求传递给其他中间件或路由。它通过调用来实现,next()或者如果不想传递它,则不调用next()

因此,如果您有:

app.use("/", fn);

该中间件将被所有路径调用,但是您传递给它的函数内部的代码决定是否传递请求。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么使用其他文件在Express中路由不起作用?

来自分类Dev

为什么本地主机无法在Chrome(OSX)中路由到127.0.0.1?

来自分类Dev

为什么在ASP.NET MVC示例中路径信息路由不起作用?

来自分类Dev

为什么本地主机无法在Chrome(OSX)中路由到127.0.0.1?

来自分类Dev

为什么内容被填充为angular2中路由器出口的同级

来自分类Dev

Express JS为什么使用路由器?

来自分类Dev

为什么“ <=”和“> =”与“ <”,“>”和“ ==”无关?

来自分类Dev

为什么AFrame需要Node?

来自分类Dev

什么和为什么GLSL textureGrad

来自分类Dev

为什么在我的应用程序[React-router v4-beta5]中路由无效?

来自分类Dev

为什么Node.js + Express不会因错误而崩溃?

来自分类Dev

为什么应该使用资源而不是路由?

来自分类Dev

为什么使用$ routeProvider提早触发路由?

来自分类Dev

为什么路由不起作用?

来自分类Dev

为什么在codeIgniter路由上使用$ 1。

来自分类Dev

为什么此命名空间路由失败?

来自分类Dev

为什么要使用资源而不是路由?

来自分类Dev

为什么需要路由器?

来自分类Dev

为什么此静态路由不生效?

来自分类Dev

为什么在codeIgniter路由上使用$ 1。

来自分类Dev

为什么要结合http模块和express模块

来自分类Dev

为什么要使用Express而不是AngularJS?

来自分类Dev

为什么未在Express中设置cookie?

来自分类Dev

为什么Express不是中间件?

来自分类Dev

为什么在将event.preventDefault()与访存api,express和node.js一起使用时,req.body为什么返回null?

来自分类Dev

在Express.js中路由

来自分类Dev

为什么我要分开List和Node类?

来自分类Dev

为什么jQuery不给Node的属性赋值?

来自分类Dev

为什么node.js需要python

Related 相关文章

  1. 1

    为什么使用其他文件在Express中路由不起作用?

  2. 2

    为什么本地主机无法在Chrome(OSX)中路由到127.0.0.1?

  3. 3

    为什么在ASP.NET MVC示例中路径信息路由不起作用?

  4. 4

    为什么本地主机无法在Chrome(OSX)中路由到127.0.0.1?

  5. 5

    为什么内容被填充为angular2中路由器出口的同级

  6. 6

    Express JS为什么使用路由器?

  7. 7

    为什么“ <=”和“> =”与“ <”,“>”和“ ==”无关?

  8. 8

    为什么AFrame需要Node?

  9. 9

    什么和为什么GLSL textureGrad

  10. 10

    为什么在我的应用程序[React-router v4-beta5]中路由无效?

  11. 11

    为什么Node.js + Express不会因错误而崩溃?

  12. 12

    为什么应该使用资源而不是路由?

  13. 13

    为什么使用$ routeProvider提早触发路由?

  14. 14

    为什么路由不起作用?

  15. 15

    为什么在codeIgniter路由上使用$ 1。

  16. 16

    为什么此命名空间路由失败?

  17. 17

    为什么要使用资源而不是路由?

  18. 18

    为什么需要路由器?

  19. 19

    为什么此静态路由不生效?

  20. 20

    为什么在codeIgniter路由上使用$ 1。

  21. 21

    为什么要结合http模块和express模块

  22. 22

    为什么要使用Express而不是AngularJS?

  23. 23

    为什么未在Express中设置cookie?

  24. 24

    为什么Express不是中间件?

  25. 25

    为什么在将event.preventDefault()与访存api,express和node.js一起使用时,req.body为什么返回null?

  26. 26

    在Express.js中路由

  27. 27

    为什么我要分开List和Node类?

  28. 28

    为什么jQuery不给Node的属性赋值?

  29. 29

    为什么node.js需要python

热门标签

归档