【问题标题】:Modularization of a MEAN projectMEAN项目的模块化
【发布时间】:2016-02-29 06:48:01
【问题描述】:

我目前正在从事一个使用以下主要技术的项目:- node.js - express - mongodb + mongoose - bootstrap - angularjs + angular-material

一个 MEAN 项目,简单来说。

因为生成的应用程序将安装在不同的环境中,我需要将项目组织成模块,以便能够准确选择要安装的模块。我不知道该怎么做,我看过 Yeoman、npm+bower 和 docker,但我认为这些不是解决这类问题的正确选择。我只想编辑一个文件,在该文件中指定我真正需要的特定安装模块。

我怎样才能完成它?

【问题讨论】:

    标签: angularjs node.js mongodb express mean-stack


    【解决方案1】:

    您可以使用meain.io。它具有模块化结构。

    包裹 mean.io 中的所有内容都是一个包,当使用自定义功能扩展 mean 时,请确保您创建自己的包并且不要更改核心包。

    mean.io 包系统允许开发人员创建模块化代码,提供其他平均开发人员可以使用的有用工具。这些包在发布时是即插即用的,其使用方式与传统的 npm 包非常相似。

    mean.io 包系统将所有包集成到 mean 项目中,就好像代码是 mean 本身的一部分一样,并为开发人员提供了将包集成到宿主项目所需的所有必要工具。

    有两种类型的包:

    自定义包由平均脚手架生成并包含您的大部分应用程序逻辑。自定义包位于 /packages/custom 中,可以作为 contrib 包发布以供其他开发人员使用。 Contrib 包由平均安装程序安装,位于 /packages/contrib。 Contrib 包是“即插即用”的。

    核心包 所有核心包都可以被其他包覆盖,从而允许您对其进行扩展和调整以满足您的特定需求。

    更多详情here

    【讨论】:

    • Mean.io 可以是一种解决方案,谢谢,但它有一些问题。它迫使我将所有东西都包装在一个包裹中,这很好。但我不想使用任何现有的包,因为我已经自己处理了所有事情。另一个问题是这意味着迫使我使用一个不太好的固定结构,例如客户端代码是由概念(控制器、模块等)而不是由逻辑分隔的,这不是一个角度的最佳实践。我可以避免使用任何 mean.io 默认包并更改结构吗?
    • 当然可以改。我正在为我们的大型项目使用 angular fullstack 我改变了它的结构并使其适合我们的项目。您还可以在 mean.io 中更改您需要的所有内容。它只是一个javascript代码。与其自己构建这样的项目结构,您可以了解如何构建它,您可以使用其中一些适合您的部分,或者您可以更改 mean.io 的一些行为并使其适合您。
    • 好的,谢谢。所以我会尝试使用mean.io,这似乎是答案:) 关于这个包装系统的最后一个问题。如果我需要创建一个需要编辑现有 mongodb 文档(在另一个包中定义)的新包,添加一个新字段我该怎么办?也许使用 mongodb $set?
    • 您可以编辑/删除任何包中的任何 mongodb 文档。例如。 var mongoose = require('mongoose'), User = mongoose.model('User'), _ = require('lodash'); var user = new User(req.body); user.save();
    • 您可以查看 mean.io 的核心包以获得更好的想法。例如管理包如何与用户包交互等。
    猜你喜欢
    • 2014-10-27
    • 1970-01-01
    • 2014-03-15
    • 2012-09-27
    • 2015-06-10
    • 2014-06-29
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    相关资源
    最近更新 更多