gpt4 book ai didi

node.js - 何时在 Node Express 应用程序中使用 app.use()

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:04 24 4
gpt4 key购买 nike

我试图理解我们什么时候需要在 Node Express 中使用 app.use

在网上搜索时,我偶然发现了这个答案 reddit stating the difference between app.get 和 app.use

基于此,我总结出以下几点。

app.use 充当 super 路由或中间件?这意味着它会在 app.use 下面/之后编写的每条路由上被调用?

此外,如果有人可以添加有关 app.use 的更多信息/实践,我将不胜感激。

最佳答案

当将 ExpressJS 与 NodeJS 结合使用时,您可以使用 app.getapp.use 来实现几个有用的方面。

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

app.use(...)

正如您正确指出的那样,它对于“中间件”很有用,它将适用于您在后文中指出的所有 GET、POST 等。例如,您只能在您想要“使用用户/通行证身份验证”的 GET 之前使用中间件。

  • 指明静态内容的文件夹:app.use(express.static(__dirname + "/public"));

  • 包含 JSON 内容的解析器:app.use(bodyParser.json());

  • 定义“Cookie 解析器”签名字符串:app.use(cookieParser("Signing text example"));

  • 不同文件中的网址的独立路由器:app.use("/api", apiRouter);app.use("/news", newsRouter);app.use("/", siteRouter);

  • 对于自定义错误处理程序:app.use(sites404handler);app.use(globalErrorHandler);

app.get(...)

当谈论 app.get(...) 时,您正在指示将通过 GET 方法访问哪些 URL。但您可以在此处使用多个选项:

  • 表明您有一个主页:app.get("/", function(req, res) { res.send("Hello world!"); });

  • 接受 POST 请求:app.post("/", function(req, res) { res.send("Hello world! With POST call."); });

  • 您还可以将其单独放在另一个文件中作为“apiRouter.js”并包含在其中:let router = express.Router(); router.route("/books").get(function(req, res) { res.send("通过路由器调用/api/books/"); });

app.set(...)

请记住,您还可以选择app.set(...)。这对于定义像 Handlebars(.hbs 文件)这样的 View 引擎非常有用。

希望这能有所帮助!

关于node.js - 何时在 Node Express 应用程序中使用 app.use(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52802653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com