是否可以"share"节点.js/快速.js路由/代码?



我们有一个node.js/express.js应用程序(nodeserver.js(,该应用程序支持一组路由,如下所示:

// Routes
var xml = require('./routes/xml');
var process = require('./routes/api/process');
.
.
.
// Routes
app.use('/arest/xml', xml);
app.use('/api/process', process);
.
.

执行process.js时,它首先检查req.headers的内容类型,如果它是应用程序/xml,它基本上的处理与xml.js中的处理相同(如果内容类型为应用程序/JSON,则执行不同的处理。

换句话说,xml.js的处理(和代码(基本上是复制的。

该代码已经存在一段时间了,现在我被要求对XML.JS所做的处理进行一些增强,这意味着我必须进行相同的更改两个地方(在这两个位置中,xml.js并重复相同的更改。js。

是否有任何方法可以在xml.js中进行处理,以便将process.js进行处理。两个文件中的相同代码更改?

我很抱歉这种解释有点尴尬。

谢谢吉姆

从使用参数中删除URL,每个路线都会被您的功能击中。然后,您可以将基本或常见的逻辑应用于所有人,并保留专用路线,以保留为特定路线保留的更具体的处理。例如:

app.use(sharedRouteLogic) //executed on all routes
app.use('/arest/xml', xmlSpecificRoute);
app.use('/api/process', processSpecificRoute);

帖子处理标头或缓存

相同的逻辑适用于响应。您可以配置应用于所有响应的回调。

app.use(function(req, res, next) {
  res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
  res.header('Expires', '-1');
  res.header('Pragma', 'no-cache');
  next();
})

最新更新