Node.js mongoose和restify-在返回json之前本地化字符串

Node.js mongoose和restify-在返回json之前本地化字符串,node.js,express,internationalization,mongoose,restify,Node.js,Express,Internationalization,Mongoose,Restify,我想在基于node.js、restify和mongoose的RestFul API中返回多语言业务对象的本地化字符串。我需要将翻译后的资源存储在我们的翻译资源服务器上,但也需要支持这些业务对象的动态创建 在创建或更新我的多语言业务对象时,我找到了一个解决方案,可以在POST/PUT调用中使用单个预“保存”mongoose中间件轻松插入i18n进程,因为我能够将请求上下文传递给obj.save(req,callback)调用 但是,我很难在simple GETs上插入i18n。在返回响应之前,我想

我想在基于node.js、restify和mongoose的RestFul API中返回多语言业务对象的本地化字符串。我需要将翻译后的资源存储在我们的翻译资源服务器上,但也需要支持这些业务对象的动态创建

在创建或更新我的多语言业务对象时,我找到了一个解决方案,可以在POST/PUT调用中使用单个预“保存”mongoose中间件轻松插入i18n进程,因为我能够将请求上下文传递给obj.save(req,callback)调用

但是,我很难在simple GETs上插入i18n。在返回响应之前,我想到并尝试了不同的方法来插入i18n,但并没有找到好的方法。我想到的选择:

  • 在mongoose中间件pre/post('init')中进行翻译:

    问题:我无法访问请求上下文,因此 我不知道要返回的区域设置,因此无法在那里进行翻译

  • 在toObject()/toJSON{transform:}中进行翻译:

    同样的问题-我在这些钩子中没有请求上下文

  • 翻译每个ressource的处理程序/控制器方法

    问题:复制,我必须在任何地方都这样做,我真的更喜欢可以在模型/模式层定义的解决方案

  • 最后在restify/express中间件中进行翻译:

    问题:我再也不能访问mongoose模式元信息了,所以我不知道要翻译哪些属性

编辑:刚刚找到了另一种方法: -在自定义restify responseFormatter中转换:

这似乎工作得很好,在reponformatter中,我可以访问我需要的所有内容。从建筑学的角度来看,这似乎有点奇怪,但如果没有人有更好的想法,我会补充这一点作为答案

也许(希望)我错过了一些明显的东西

谢谢你的提示