欢迎关注本人的微信公众号“前端小填填”,专注前端技术的基础和项目开发的学习。

在本系列的开篇,我打算讲一下全栈项目开发的优势,以及MEAN项目各个模块的概览。

为什么选择全栈开发?

    对于初学者来说,学习一门新的语言和技术的体验总是让人愉快的,也会满足于掌握了一些新的东西并且解决了一些实际问题。在一个小组中采用全栈开发时,你可以更加有效地把握项目全局概念,这也有利于让你了解项目中的不同模块以及它们之间是如何协同工作的。你会对你们的产品中他人的贡献更加清晰,你也就了解了这款产品如何才能成功。并且在一个全栈开发项目中,小组成员之间的角色是可以转换的,后台开发人员也可以开展客户端开发的工作。

如果你只是一个个人开发者,全栈项目开发的优势将更加明显,你可以从零开始自己打造一个产品,而不需要依托于别人的工作,你也将具有更加完善的开发技能来做出更加精致的产品。

为什么选择MEAN全栈开发?

一个MEAN项目将最佳的现代化web技术技术流用于打造强大且灵活的全栈开发。JavaScript不再仅仅是存活在浏览器上的语言,它也被用来进行后台开发和数据库操作。你能在前端后台采用同一种开发语言,这极大地降低了程序员的学习成本,让一个人能做的事情更多。下面将具体介绍MEAN项目中各个模块。

Node.js

 Node.js就是MEAN中的那个N,它也是让JS变得强大的后台开发语言的力量之源。甚至可以说,它是整个全栈项目的基石!

Node.js本身并不是一个web服务器,也不仅仅是一种后台开发语言,他有一个内置的HTTP的库,让你能够自己启动一个服务。你在用Node.js开发时,你可以自己去配置你的服务器。一些老式的Paas主机还不能支持node.js,但是现在能够支持node.js的平台已经越来越多。

Express

express就是MEAN中的那个E,Node.js是一个开发平台,却并没有预先说明应该如何变成和搭建,express作为一款web应用框架简化了这一流程。

express能够帮助你快速搭建项目,提供URL作为路由,并且提供session模块支持你的开发中的一些需求,能够用view模块进行HTML的响应。

MongoDB

MongoDB是MEAN中的那个M。这是一款很实用也很流行的非关系型数据库。最大的优势是存取速度快还有可扩展空间,这个是传统的关系型数据库不能比拟的。MongoDB是一个文档型数据库,它的行业的概念依然存在,但是列的概念已经不复存在了。他的键值对的表现形式使得它看起来更像是一条一条的json。更为方便的是,你还可以用js来操作MongoDB,这还是JS程序员的福音啊!express提供很多用于操作MongoDB数据库的中间件,本项目中采用的是mongoose。你可以用它来构建数据模型,并且操作数据。

Angular.js

Angular.js就是MEAN中的那个A。这是一款强大的前端开发框架。具有很多别的开发框架没有的新特性,比如双向数据绑定、依赖注入、指令等。采用 Angular.js来打造一个单页应用真是太方便了。

总的来说呢,整个MEAN项目的技术架构是这样的


下一期我将具体讲述整个项目的技术设计还有express项目搭建。

《从零开始做一个MEAN全栈项目》(1)的更多相关文章

  1. 1<<33这种写法是错的!!!

    1<<33不能这么写,1默认int类型,应该改为(long long)1<<33

  2. mysql 5.6.33 重置密码后报错

    [root@ Desktop]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; o ...

  3. 【C语言】++(a++)的写法是错的

    http://bbs.csdn.net/topics/390764053 a++得到的是一个右值,++操作需要的是一个左值. ------------------------------------- ...

  4. [C语言]易错知识点、小知识点复习(1)

    1. 计算机只能识别由0和1组成的二进制指令,需要将用高级语言(如C.C++)编写的源程序(.c..cpp)编译成二进制目标文件(.obj).一个程序可以根据需要写在不同的文件里,编译是以文件为单位进 ...

  5. js自执行函数的几种不同写法的比较

    经常需要一个函数自执行,可惜这一种写法是错的: function(){alert(1);}();  原因是前半段“function(){alert(1);}”被当成了函数声明,而不是一个函数表达式,从 ...

  6. 菜鸟的Xamarin.Forms前行之路——从新建项目到APP上架各种报错问题解决方法合集(不定时更新)

    出自:博客园-半路独行 原文地址:http://www.cnblogs.com/banluduxing/p/7425791.html 本文出自于http://www.cnblogs.com/banlu ...

  7. django migrate报错:1005 - Can't create table xxx (errno: 150 "Foreign key constraint is incorrectly formed")

    自从mysql升级,以及使用mariaDB以来,很多不曾更新django中model的外键, 今天,按以前的思路写完外键之后, migrate命令报错: 1005 - Can't create tab ...

  8. 《C++primer》v5 第2章 变量和基本类型 读书笔记 习题答案

    2.1 int,long long ,short 可表示范围和占用内存空间不同.具体与计算机有关. 无符号类型只能表示0和正数,带符号类型可以表示负数,0,正数. float是单精度,一般占用4个字节 ...

  9. Go第七篇之规范的接口

    接口本身是调用方和实现方均需要遵守的一种协议,大家按照统一的方法命名参数类型和数量来协调逻辑处理的过程. Go 语言中使用组合实现对象特性的描述.对象的内部使用结构体内嵌组合对象应该具有的特性,对外通 ...

  10. 作为一个新手的Oracle(DBA)学习笔记【转】

    一.Oracle的使用 1).启动 *DQL:数据查询语言 *DML:数据操作语言 *DDL:数据定义语言 DCL:数据控制语言 TPL:事务处理语言 CCL:指针控制语言 1.登录 Win+R—cm ...

随机推荐

  1. get------引用接口

    关于引用接口   1.    通过get方式 2.   String  poiUrl="http://接口地址?接口ID=接口给你的ID&参数1=?&参数2=?&参数 ...

  2. hdu1087 dp

    题意:给定一串数字,要求选取一个严格递增的子序列,使序列和最大. dp[i] 表示以 i 为结尾的子序列的最大和,dp[i] = max{dp[j]+a[i]}(j 从 0 到 i-1),dp[0]是 ...

  3. 王爽<汇编语言>实验十

    实验十 3.数值显示(以下程序附带测试程序) ;名称: dtoc ;功能: 将dword型数据转变为表示十进制数的字符串,字符串以0为结尾 ;参数: (ax)=dword型数据低字 ; (dx)=dw ...

  4. RestEasy 3.x 系列之四:使用Hibernate_Validator进行数据校验

    使用Hibernate_Validator进行数据校验,好处不言而喻:规范统一,低耦合度. 1.pom.xml <dependency> <groupId>org.hibern ...

  5. Python>>>Flask框架使用之入门

    操作平台Windows Python2.7 安装 pip install flask Hello World程序 from flask import Flask app = Flask(__name_ ...

  6. 041. asp.net中内容页访问母版页中的控件

    母版页运行机制: 用户通过输入内容也的URL来请求某个页面, 获取该页面后, 读取@Page指令, 如果该指令引用了一个母版页, 则也读取该母版页, 如果也是第一次请求这两个页面, 则母版页和被请求的 ...

  7. fastdfs 安装配置

      介绍文档   1.安装 # wget # tar xf download # cd FastDFS/ # ./make.sh 运行文件 有报错信息 compilation terminated. ...

  8. Saying that Java is nice because it works on every OS is like saying that anal sex is nice because it works on every gender.

    Saying that Java is nice because it works on every OS is like saying that anal sex is nice because i ...

  9. qt的moc,uic,rcc命令的使用

    qt是一个c++的界面库,其特点就是其源码可以跨平台编译,这样在写自己的小工具时可以方便地在windows,mac或linux环境下移植了.在windows下写c++程序当然选vs,在mac下写程序当 ...

  10. [Linux] - CentOS中文乱码解决办法

    CentOS 7 终端中文乱码解决办法: 1.使用vim编辑locale.config文件: vim /etc/locale.conf 2.将LANG="en_US.UTF-8"修 ...