gpt4 book ai didi

javascript - 在 Node.js 中组织各种请求

转载 作者:搜寻专家 更新时间:2023-10-31 23:14:24 25 4
gpt4 key购买 nike

我是 Node.js(和 Express)的新手,我正在尝试理解这一点。假设我有一个包含 3 个页面(可以是 GET 或 POST)的网站://page1/page2。我应该怎么做才能让每个页面都由一个单独的 JS 文件处理?

app.all('/', function(request, response)
{
// Get home.js to handle this request and response
});
app.all('/page1', function(request, response)
{
// Get page1.js to handle this request and response
});
app.all('/page2', function(request, response)
{
// Get page2.js to handle this request and response
});

更好的是,有没有一种方法可以定义一个通配符,这样就不会出现太多重复?像这样:

app.all('*', function(request, response)
{
// Get *.js to handle this request and response. * is whatever the URI string is
});

最佳答案

这里的技巧是 app 对于创建它的文件是本地的。因此,您必须将该对象置于其他文件的范围内。

每个其他文件都应导出一个函数,您可以将您的应用程序实例传递给该函数,以便它可以注册新路由。像这样的方法应该可行。

// home.js
exports.register = function(app) {
app.all('/', function(request, response) { ... });
};

// page1.js
exports.register = function(app) {
app.all('/page1', function(request, response) { ... });
};

// page2.js
exports.register = function(app) {
app.all('/page2', function(request, response) { ... });
};

//server.js - setup the app
app = express.createServer();
require('./home').register(app);
require('./page1').register(app);
require('./page2').register(app);

对于问题的第二部分,您想分享一些设置方法吗?

app.all('*', function(req, res, next) {
res.header 'x-snazzy-header', 'Im so snazzy'
next()
});

app.all('/page/:id', function(req, res) {
res.send('content for page #'+ req.params('id'));
});

首先,您可以使用* 或类似/users/:id 的命名参数来匹配一系列路由。如果你想做一些常见的设置,你实际上可以执行 2 条路线。路由处理程序采用可选的第三个参数 next。调用时,它将尝试找到下一条要匹配的路由。因此,您可以使用它为一堆路由设置诸如通用 header 之类的东西。

关于javascript - 在 Node.js 中组织各种请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9526597/

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