说实话,自己对于web前段的认识并不是太深入,但是因为项目的需要,所以有的时候肯定会需要接触到web前段的知识点。说到web前端想必大家肯定会想到css+js+html,的确web前端的工作,从某总角度来说就是给页面添加必要的一些页面样式来达到美化的效果。我们先来说一说css吧,一种样式语言,它允许我们通过给页面html标签添加一定的属性功能,从而达到美化的目的。在css样式书写的时候,允许我们定义三种类型的css样式:1.class样式;2.属性样式;3.id样式;其实这三种样式的作用是一样的,但是使用范围的便捷性方面就会差很多。当我们觉得一个html页面里面冗余的样式太多的时候,我们可以将相同的css单独抽离出来,这个时候将会一种外联样式的情况。我们可以在html的header标签里面通过link属性进行css的外联。你可以会觉得这还真有点面向对象编程的属性一样,可以很方便的实现抽象封装。但是这种情况下,极有可能会发生页面渲染太慢的问题。因为浏览器的渲染引擎的机制就是这样的,当它从上至下开始渲染的时候,遇到link属性的时候,浏览器就要阻塞当前页面渲染的动作,开始外部样式表的加载。当外联的css加载完成之后,浏览器才会开始后面的html页面渲染的动作。那么js呢?在整个web前端启动一个怎样的目的呢?很显然js是出于一种最核心的位置。假如将css比作绘制html页面的画笔的话,那么我们就可以将js比作以为美术指导老师,css绘制的过程中,js可以动态的指挥它应该怎样做?不仅如此,js还可以启动前端页面的数据请求作用,将请求回来的数据无刷新的展示会html页面。所以有的时候,如果我们想要很好地html页面效果,只要你具有很好地css+js运用技术,那么你就能做出非常cool的html页面。

有的时候,我自己认为css+js学起来应该是非常简单地一门技能。因为它就是那种即学即可用的东西,可是它确实非常的麻烦。但不是说它里面会有多么高深的算法问题,而是因为东西烦复,还有各种浏览器的兼容问题。那么有没有一种很好地框架能够帮我们很好地完成:页面数据无刷新展示、请求发送、css样式的动态更改呢?我想angularjs就能够很好地满足你的要求。angularjs最大的特点是什么呢?基于单页面无刷新的app/controller两套js的模块化前端编程。运用angularjs,我们可以很好地组织自己的js脚本,同时后台的基于$scope作用域的js变量可以很好地更新到、关联到前端页面。好了,angularjs已经很好地解决了我们html到js的问题,然后呢?我们是不是就应该考虑js到后端代码的处理逻辑了。你想如果后端语言是java的话,那么我们就需要通过js将html页面里面展示的数据发送到后台java代码里面,同时呢?我们还需要将后台java代码响应的数据放回到html页面。中间从js到java语言的一种跨度,那么有没有一种很好地方法,同时保证前端和后端都是同一种语言呢?答案就是nodejs,通过nodejs我们可以很好地将前端和后端统一成js语言。这将是一种很好愿景了,这么一来只要我熟悉js,是不是意味着我前后端都可以同时进行开发了?是不是项目的开发成本就可以降到很低了。原来至少需要两个人才能够做的事情,现在我找一个懂设计的web前端,理论上来说都可以干了。通过nodejs,大型的商用项目我没有测试过,但是中小型的项目肯定是没有问题的。而且开发效率是非常高的,我曾经就通过nodejs用了一周的实现就实现了类似于豆瓣读书模块的二手书平台,虽然功能、设计各方面还不太完整,但是胜任高强度的开发需求是绝对没有问题的。说道这里,你也许会觉得奇怪了,通过js我能够连上数据库吗?我能实现数据的持久化保存吗?答案是肯定,因为数据库连接主要依靠的就是数据库驱动了,接入我数据库驱动就支持js语言连接,那么不会可以了吗?

现在针对大数据平台,出现了一种nosql的概念,我想后端开发的同志肯定是不陌生的。问什么会提出这么一种概念呢?主要是现在这个时代背景下,数据信息量实在是太大了,如果我们还是运用传统意义上的关系型数据库保存数据的话,一个是现实世界里面的数据信息不一定都是那么的具有规则性、关联性。另一种通过关系型数据库进行数据读取操作的时候特别的费劲,而且读出来的数据格式我们还需要进行另一层面的处理才能够满足我们的项目使用需要。所以面对这样一种场景需求,就出现了nosql的意思:not only sql。我们可以直接将数据按照更加接近现实世界的场景习惯去保存数据,比如现实世界里面的一个人,我们会说这个人叫什么、多大了、男的女的、住哪、帅帅、漂不漂亮等。如果这种情况下,我们按照关系型去保存的话,就可能将上面的信息拆解成一个一个的字段。可是呢?运用nosql,我们就可以直接一个json格式的数据保存进去,这条json格式的数据,就包括了你这个人。读取的话,我直接找到这条数据即可,不需要这个表连查一下,那个表连查一下。

在nosql的众多数据库产品里面,我想mongodb应该是运营最多、比较成熟稳定了吧。

现在我们可以再试想一下,如果有一款基于h5或者微信或者中小型web网站的项目,我们运用这三剑客去开发,该是一种怎样的享受体验呢?有的时候不到一周时间,可能项目就成型了。成本之下,可想而知!

angularjs+nodejs+mongodb三件套的更多相关文章

  1. 使用 AngularJS & NodeJS 实现基于token 的认证应用(转)

    认证是任何 web 应用中不可或缺的一部分.在这个教程中,我们会讨论基于 token 的认证系统以及它和传统的登录系统的不同.这篇教程的末尾,你会看到一个使用 AngularJS 和 NodeJS 构 ...

  2. 使用 AngularJS & NodeJS 实现基于 token 的认证应用

      认证是任何Web应用中不可或缺的一部分.在这个教程中,我们会讨论基于token的认证系统以及它和传统的登录系统的不同.这篇教程的末尾,你会看到一个使用 AngularJS 和 NodeJS 构建的 ...

  3. react+react-router+react-redux+nodejs+mongodb项目

    一个实际项目(OA系统)中的部分功能.这个demo中引入了数据库,数据库使用了mongodb.安装mongodb才能运行完整的功能.要看完整的项目可以移步我的github 技术栈 React v15. ...

  4. NodeJS,MongoDB,Vue,VSCode 集成学习

    NodeJS,MongoDB,Vue,VSCode 集成学习 开源项目地址:http://www.mangdot.com

  5. Nodejs+MongoDB+Bootstrap+esj搭建的个人简易博客

    github:https://github.com/yehuimmd/myNodeBloy Nodejs+MongoDB+jQuery+Bootstrap-esj搭建的个人简易博客 主要功能 前台 : ...

  6. 前端MVC学习总结(四)——NodeJS+MongoDB+AngularJS+Bootstrap书店示例

    这章的目的是为了把前面所学习的内容整合一下,这个示例完成一个简单图书管理模块,因为中间需要使用到Bootstrap这里先介绍Bootstrap. 示例名称:天狗书店 功能:完成前后端分离的图书管理功能 ...

  7. 前端MVC学习笔记(四)——NodeJS+MongoDB+AngularJS+Bootstrap书店示例

    这章的目的是为了把前面所学习的内容整合一下,这个示例完成一个简单图书管理模块,因为中间需要使用到Bootstrap这里先介绍Bootstrap. 示例名称:天狗书店 功能:完成前后端分离的图书管理功能 ...

  8. NodeJS+MongoDB+AngularJS+Bootstrap书店示例

    目录 一.Bootstrap 1.1.添加引用 1.2.在页面中使用BootStrap 1.3.可视化布局 二.使用MongoDB创建数据库 2.1.启动MongoDB数据库 2.2.启动数据库GUI ...

  9. ivqBlog 开源博客 (angularjs + express + mongodb)

    转向做全职前端差不多一年的时间了,其中学习了构建工具grunt,gulp,angularjs,coffeescript,less,sass,自己想要做全栈开发,所以自学了mongodb,nodejs, ...

随机推荐

  1. 二叉树之AVL树的平衡实现(递归与非递归)

    这篇文章用来复习AVL的平衡操作,分别会介绍其旋转操作的递归与非递归实现,但是最终带有插入示例的版本会以递归呈现. 下面这张图绘制了需要旋转操作的8种情况.(我要给做这张图的兄弟一个赞)后面会给出这八 ...

  2. 【PL/SQL练习】函数

    1.必须返回一个值2.只能在表达式调用 SQL> create or replace function fun1 return number is v_sum_sal emp.sal%type; ...

  3. C# ref和out的区别

    首先:两者都是按地址传递的,使用后都将改变原来参数的数值. 其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所 ...

  4. word2010忽然无法撤销

    转:http://tieba.baidu.com/p/1115124288     第三楼 关闭正在运行的所有程序. 按Win-R,在运行框中键入regedit,然后单击“确定”. 在注册表编辑器中, ...

  5. django+celery+redis环境搭建

    初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar. ...

  6. UVa11210 中国麻将 Chinese Mahjong-搜索

    https://vjudge.net/problem/UVA-11210 //被水题虐了一上午... #include<iostream> #include<cstdio> # ...

  7. Android控件大全(三)——RecyclerView

    是时候用RecyclerView来替换ListView和GridView了 好处就不多说了,百度一搜一大把,来介绍下用法 先定义个适配器: public class BottomSheetAdapte ...

  8. linux 内存使用

    # df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 1.9G 45G 5% / tmpfs 1.9G 0 1.9G 0% ...

  9. jquery attr()和prop()方法的使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. SDL2 Tutorial

    Hello World for SDL2 SDL2 setting for visual studio. http://lazyfoo.net/tutorials/SDL/01_hello_SDL/w ...