当前位置: 首页 > 知识库问答 >
问题:

何时使用应用程序。在Node express应用程序中使用()

姜钧
2023-03-14

我试图理解我们什么时候需要使用这个应用程序。在我们的node Express中使用

当我在网上搜索时,我在reddit上偶然发现了这个答案,它说明了应用程序之间的区别。获取和应用程序。使用

在此基础上,我总结了以下几点。

app。使用充当超级路由或中间件?这意味着它在应用程序下面/之后编写的每个路由上都会被调用。使用

此外,如果有人能添加更多关于app.use.的信息/练习,我将不胜感激

共有3个答案

巫马玉堂
2023-03-14

app.get路由处理程序应用于GET请求,无论是指定路径还是所有路径:

使用指定的回调函数将HTTP GET请求路由到指定路径。

app。使用中间件应用于所有请求,包括指定路径或所有路径:

在指定路径上挂载指定的一个或多个中间件函数:当请求路径的基匹配路径时,执行中间件函数。

use用于将一些逻辑(中间件)应用于特定的路由或整个应用程序,而不管请求方法如何。

徐飞龙
2023-03-14

>

  • 用于静态路径

    //Set static path
    app.use(express.static(__dirname + '/public'));
    

    用作路由器

    //user
    app.use('/', require('./controllers/user'));
    

    用于手机线中间件

    //Body-parser
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({
        extended: true
    }));// Body parser use JSON data
    

    用于自定义中间件

    // force https
    app.use ( (req, res, next) =>{
        if (req.secure) {
            // request was via https, so do no special handling
            next();
        } else {
            // request was via http, so redirect to https
            res.redirect('https://' + req.headers.host + req.url);
        }
    });
    

  • 羊舌涵涤
    2023-03-14

    当将ExpressJS与NodeJS一起使用时,您可以将app.getapp.use用于几个有用的方面。

    初始化应用程序后,如let App=express() ,您可以在下面找到一些示例:

    正如您正确指出的,它对于“中间件”非常有用,它将应用于所有GET、POST等。您指出了后记。例如,您只能在获取您想要的“具有用户/通过身份验证”之前使用中间件。

    >

  • 指定静态内容的文件夹:app。使用(express.static(uu dirname)/public”)

    包括JSON内容的解析器:app.use(body Parser.json ());

    定义Cookie Parser签名字符串:app.use(CookieParser(签名文本示例));

    不同文件中URL的单独路由器:app。使用(“/api”,apiRouter) 应用程序。使用(“/news”,新闻路由器) 应用程序。使用(“/”,siteRouter)

    对于自定义错误处理程序:app。使用(sites404handler) 应用程序。使用(globalErrorHandler)

    当谈论应用程序时。得到(…) 您正在指示将通过GET方法访问哪些URL。但您可以在此处使用几个选项:

    >

  • 表示你有一个主页:app.get ("/", 函数(req, res){res.send(Hello world!); });

    接受POST请求:app.post ("/", 函数(req, res){res.send("Hello world!用POST调用."); });

    您还可以在另一个文件中将其分隔为“apiRouter.js”,并将其包含在其中:let router=express。路由器();路由器。路线(“/books”)。get(函数(req,res){res.send(“/api/books/通过路由器调用”);})

    请记住,您还有app选项。集合(…) 。例如,这对于定义视图引擎(如把手(.hbs文件))非常有用。

    希望这能有所帮助!

  •  类似资料:
    • 在99%的情况下,当SQL server返回意外错误或文件系统中缺少文件时,我不能做任何合理的事情,我只想记录这种情况并将错误返回给用户。所以我看不出有什么理由应该返回“err”手动展开堆栈,实际上我会丢失stacktrace和上下文,并且更难找到错误的原因。 有没有什么我错过了,所以这种方法不会很好地工作?似乎大多数Go文章都建议不要使用panic/recover,但我不明白为什么。它看起来非常

    • 我尝试在JAVA代码中调用MessageBoxA函数。以下方法有什么问题,以至于我的程序抛出了很多错误? 1-st: run:线程“main”java.lang.ClassFormatError:java.lang.ClassLoader的类文件加载/库/MessageBox中的本机或抽象方法中的代码属性。java.lang.ClassLoader.defineClass(ClassLoader.

    • 问题内容: 我有一个Swing应用程序,我希望将其从意大利面条转换为对Guice使用依赖项注入。使用Guice提供诸如配置和任务队列之类的服务的过程非常好,但是我现在是从应用程序的GUI开始的,不确定如何进行。 该应用程序基本上是,在中带有一堆标签。每个选项卡都是一个单独的子类,该子类列出了各种组件,并且需要服务才能在按下某些按钮时执行操作。 在当前应用程序中,这看起来像这样: 显然,这并不完全遵

    • 我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em

    • 我正在用c开发一个应用程序,我想使用solr来索引sqlite数据库,我在网上搜索了一下,发现我需要使用JNI:http://randr . svbtle . com/experiment-with-embedded-Solr-in-Java-and-c,但是我发现jar有很多问题(我使用了\solr-4.9.0\dist\solrj-lib和\solr-4.9.0\dist和\solr-4.9.

    • 问题内容: 我正在尝试将Hibernate用于多线程应用程序,其中每个线程都检索一个对象并将其插入表中。我的代码如下所示。我每个线程都有本地hibernate会话对象,在每个InsertData中,我都执行beginTransaction和commit。 我面临的问题是很多次我收到“ org.hibernate.TransactionException:不支持嵌套事务” 由于我是hibernate