小编Joe*_*use的帖子

同构(React/Redux/Express/Mongo)应用程序中的数据模型和业务逻辑

我最近使用React-Redux-Express-Mongoose堆栈构建了一些isomporphic/univeral项目.

在我的猫鼬模型中包含了很多业务逻辑.作为一个非常基本的例子(借口我的ES6):

import mongoose, {Schema} from 'mongoose';

const UserSchema = new Schema({
  name: String,
  password: String,
  role: String
});

UserSchema.methods.canDoSomeBusinessLogic = function(){
  return this.name === 'Jeff';
};

UserSchema.methods.isAdmin = function(){
  return this.role === 'admin';
};
Run Code Online (Sandbox Code Playgroud)

这在服务器上都很棒,但是当这些模型在浏览器中作为普通JSON对象进行水合时,我必须在一些React组件或Redux reducer中重新实现相同的业务逻辑,这对我来说感觉不是很干净.我想知道如何最好地解决这个问题.

阅读Mongoose,浏览器支持似乎有限,主要用于文档验证.我想我的主要选择是:

  • 将所有业务逻辑移动到一些"普通"JS类中,并在整个地方实例化这些逻辑.例如:

    # JS Class definition - classes/user.js
    export default class User {
        constructor(data = {}){
          Object.assign(this,data);
        }
    
        canDoSomeBusinessLogic(){
          return this.name === 'Jeff';
        };
    
        isAdmin(){
          return this.role === 'admin';
        }
    }
    
    # Server - api/controllers/user.js
    import UserClass from 
    User.findById(1,function(err,user){
        let user = new …
    Run Code Online (Sandbox Code Playgroud)

mongoose universal reactjs isomorphic-javascript redux

7
推荐指数
1
解决办法
1062
查看次数

Docker容器:服务与完整应用程序

我正在和自己讨论如何思考和使用Docker容器.

从文献和示例看来,容器应该真正提供服务或堆栈的一部分.例如,容器可能运行MySQL,Apache或redis等等.我能理解为什么这很干净,而且很有意义.

在我们的场景中,我们希望在同一台服务器上托管多个完全独立的Web应用程序(电子商务商店,wordpress站点,静态网站,node.js应用程序),我们希望使用Docker.因此,对于我来说,每个容器完全是自容器更有意义,整个堆栈本身就是例如我的每个可能运行的wordpress容器中的每一个都有自己的LAMP安装.

将one-container-one-service模型应用于此场景似乎非常复杂 - 每个应用程序都依赖于系统中的其他容器,而这些容器又将依赖于其他容器.如果您需要特定服务的多个版本,该怎么办?

虽然这似乎是要走的路,但它似乎也可能非常低效?我不是LXCs如何工作的专家,但即使一切都集装箱化,真的有所有的Apache2工人和mysqlds系统上运行,与所有的相关的开销 - 在那里将是性能问题?

有人有想法吗?

docker

6
推荐指数
1
解决办法
1736
查看次数