Node.js 使用mongo/node的多语言界面和内容
我们正在开发一个新的应用程序,它将以saas模式在线提供服务。用户可以访问某些工具和一些关于如何使用它的教程 我的问题是什么是使(界面和内容)都成为多语言的最佳方法。给你一个例子-想象一下带有以下链接的简单导航: -第1节Node.js 使用mongo/node的多语言界面和内容,node.js,mongodb,schema,data-modeling,database,Node.js,Mongodb,Schema,Data Modeling,Database,我们正在开发一个新的应用程序,它将以saas模式在线提供服务。用户可以访问某些工具和一些关于如何使用它的教程 我的问题是什么是使(界面和内容)都成为多语言的最佳方法。给你一个例子-想象一下带有以下链接的简单导航: -第1节 |-第a页 |-第b页 -第2节 -第3节 |-c页 每一页显然都包含某些标签、标题、按钮等 我已经搜索了一段时间,找到的最接近的答案是: 然而,它描述了有关关系数据库的方法 在研究了其他问题之后,最好的方法似乎是将节/页/标签/标题/按钮的每个名称存储为一个ID为的对象,并
|-第a页
|-第b页
-第2节
-第3节
|-c页 每一页显然都包含某些标签、标题、按钮等 我已经搜索了一段时间,找到的最接近的答案是: 然而,它描述了有关关系数据库的方法
在研究了其他问题之后,最好的方法似乎是将节/页/标签/标题/按钮的每个名称存储为一个ID为的对象,并将翻译保存在一个单独的表中,包括对象的相应ID、语言和内容。在SQL world中,simple join可以完成这项工作,但是由于我们使用的是Mongo,我想有更好的方法来完成这项工作 我建议将所有翻译存储在mongoDb数据库中,然后使用Express API从首页请求翻译
[FRONT] ----> [Send mongoDB _id(s)] ---> [EXPRESS API] ===> [MONGOOSE]
[FRONT] <---------- [Translations] <---- [EXPRESS API] <=== [MONGOOSE]
数据示例(MongoDB文档)
请求示例:检索关于一个随机部分的所有数据
工具 ----> ----> PS:是一个github项目,解释如何从头开始web/node项目(安装工具等)[Babel、Gulp、Webpack、ES6…]相关
const Content = Schema({
// Type of item you are dealing with
contentType: {
type: String,
enum: ['link', 'title', 'section', 'page'],
},
// Value of translations
translations: [{
languageName: String,
value: String,
}],
// All Contents that are inside
childs: [{
type: Schema.Types.ObjectId,
ref: 'Content',
}],
});
[{
_id: '00000000000000000000001',
contentType: 'section',
translations: [{
languageName: 'French',
value: 'Section Enfant',
}, {
languageName: 'English',
value: 'Child Section',
}],
dads: ['00000000000000000000002'],
}, {
_id: '00000000000000000000002',
contentType: 'page',
translations: [{
languageName: 'French',
value: 'Page Baguette',
}, {
languageName: 'English',
value: 'Tee Page',
}],
childs: [],
}]
Content.find({
contentType: 'section',
})
.then((ret) => {
if (!ret) return [];
// Here recursively get childs and childs and childs
// until you got everything
})
.then(() => {})
.catch(err => {});