面向用户的字符串的常量中间件

Constants middleware for user-facing strings

我是 node.js 和 express 的新手。

我正在构建一个使用 ejs 的应用程序,我希望有一个 constants 文件用于面向用户的字符串,因此在 .ejs 文件中我可以使用

<%= constants.WELCOME %> 显示欢迎信息。

我相信我可以在我的 app.js 文件中定义局部变量:

app.locals.WELCOME = "Hi and welcome to my app";

但这很快就会变得很麻烦。

我想要一个 constants.js 文件:

module.exports = {
     WELCOME: 'Hi and welcome to my app",
     ENTER_USERNAME: "Please enter your username",
     etc.
}

但我不确定如何定义一个中间件函数 app.use( <?> ) 让我可以从任何地方访问我的常量。

  1. 我考虑的是否正确,或者是否有更好的实施方式?

  2. 如何设置常量文件并将其用作中间件?这还能算是中间件吗?

我建议使用 i18n 之类的东西。它主要用于应用程序中的国际化语言,但具有集中字符串常量的额外好处。它还可以很好地运行或绑定许多流行的 JS 框架。

除非特定于请求或响应(例如,如果您想按照@zero298 的建议进行国际化),您不需要中间件。如果你只是想要一个可用的常量文件,你可以这样做:

app.locals = require('./path/to/constants.js');

然后按照您要求的方式定义 constants.js。

如果你真的想要一个中间件,签名是:

module.exports = function(req,res,next){
  // however you want to manipulate the req or res
  return next();
}

然后:

app.use(yourMiddleware);