《从零开始做一个MEAN全栈项目》(1)
欢迎关注本人的微信公众号“前端小填填”,专注前端技术的基础和项目开发的学习。

在本系列的开篇,我打算讲一下全栈项目开发的优势,以及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<<33这种写法是错的!!!
1<<33不能这么写,1默认int类型,应该改为(long long)1<<33
- mysql 5.6.33 重置密码后报错
[root@ Desktop]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; o ...
- 【C语言】++(a++)的写法是错的
http://bbs.csdn.net/topics/390764053 a++得到的是一个右值,++操作需要的是一个左值. ------------------------------------- ...
- [C语言]易错知识点、小知识点复习(1)
1. 计算机只能识别由0和1组成的二进制指令,需要将用高级语言(如C.C++)编写的源程序(.c..cpp)编译成二进制目标文件(.obj).一个程序可以根据需要写在不同的文件里,编译是以文件为单位进 ...
- js自执行函数的几种不同写法的比较
经常需要一个函数自执行,可惜这一种写法是错的: function(){alert(1);}(); 原因是前半段“function(){alert(1);}”被当成了函数声明,而不是一个函数表达式,从 ...
- 菜鸟的Xamarin.Forms前行之路——从新建项目到APP上架各种报错问题解决方法合集(不定时更新)
出自:博客园-半路独行 原文地址:http://www.cnblogs.com/banluduxing/p/7425791.html 本文出自于http://www.cnblogs.com/banlu ...
- 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 ...
- 《C++primer》v5 第2章 变量和基本类型 读书笔记 习题答案
2.1 int,long long ,short 可表示范围和占用内存空间不同.具体与计算机有关. 无符号类型只能表示0和正数,带符号类型可以表示负数,0,正数. float是单精度,一般占用4个字节 ...
- Go第七篇之规范的接口
接口本身是调用方和实现方均需要遵守的一种协议,大家按照统一的方法命名参数类型和数量来协调逻辑处理的过程. Go 语言中使用组合实现对象特性的描述.对象的内部使用结构体内嵌组合对象应该具有的特性,对外通 ...
- 作为一个新手的Oracle(DBA)学习笔记【转】
一.Oracle的使用 1).启动 *DQL:数据查询语言 *DML:数据操作语言 *DDL:数据定义语言 DCL:数据控制语言 TPL:事务处理语言 CCL:指针控制语言 1.登录 Win+R—cm ...
随机推荐
- 享元模式(Flyweight Pattern)
一.引言 在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非 ...
- Web性能测试的简介
一.术语 1.并发用户:并发一般分两种.1)严格意义上的并发,即所有的用户在同一时刻做同一件事情或操作,这种操作一般指做同一类型的业务:2)广义范围的并发,与前者主要区别,尽管多个用户对系统发出了请求 ...
- windows下安装Composer
1.下载https://getcomposer.org/composer.phar 2.复制到php.exe所在目录 3.在php.exe所在目录新建composer.bat文件 4.打开cmd,跳转 ...
- memcache/memcached安装教程并应用Tinkphp3.2
在自己的新程序中打算全面应用memcached技术,这个很容易理解这是memcached是内存缓存,但是怎么还有memcache呢?其实很简单,memcache是php的一个扩展,用于php管理mem ...
- putty+xming远程登录Ubuntu16.04图形界面
前面我写过一篇<Ubuntu16.04 安装ftp服务器传输文件>的文章.文章当中已经可以远程访问linux服务器并且传输文件,然而要在putty中使用开启图形界面的命令到目前为止还是不够 ...
- AMBA
基于IP复用的设计方法在SOC设计中得到了广泛的应用,设计过程中,片上总线的设计师最关键的问题. AMBA是由ARM公司退出的片上总线,是一种流行的工业标准片上结构. AMBA规范主要包括了AHB(A ...
- PHP+Mysql+jQuery实现地图区域数据统计-展示数据
我们要在地图上有限的区块内展示更多的信息,更好的办法是通过地图交互来实现.本文将给大家讲解通过鼠标滑动到地图指定省份区域,在弹出的提示框中显示对应省份的数据信息.适用于数据统计和地图区块展示等场景. ...
- winform导入导出excel,后台动态添加控件
思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(s ...
- .NET微信开发通过Access Token和OpenID获取用户信息
本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称.头像.性别.国家.省份.城市.语言. 本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息 ...
- 免费提供UG、ProE二次开发、定制化开发服务
免费提供UG.ProE二次开发,定制开发服务. 拥有六年UG.ProE二次开发经验,相关项目经验. 从事过智能设计.计算机图形学相关研究. 联系方式: QQ:1787326383 微信号:begtos ...