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

时间:2016-04-15 14:32:21

标签: javascript node.js ejs

我是node.js和表达新手。

我正在构建一个使用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. 如何设置常量文件并将其用作中间件?这会算作中间件吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

You don't need a middleware unless something is specific to the request or response (e.g. if you want to internationalize as @zero298 suggests). If you just want a file of constants available, you can just do:

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

and then define constants.js the way you asked to.

If you really want a middleware, the signature is:

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

and then:

app.use(yourMiddleware);