转自:https://blog.csdn.net/myKurt/article/details/79914078

nodejs类比Java中:JVM

详述:

就前端来说nodejs具有划时代的意义,

做前端的没用过nodejs都不好意思说自己是前端,

做后端的没听过nodejs,

或者说不出nodejs和java的优缺点,也不是一个合格的后端。

nodejs不是一个js框架,千万不要认为是类似jquery的框架,

nodejs是js运行时,运行环境,类比java中jvm,

java的开端是什么,无疑是jvm,自从有了jvm,java才能吹牛说自己是“一次编写处处运行”,

不管你是windows还是linux,只要安装了对应版本的jvm都可以运行.class文件。

同样nodejs的作用和jvm的一样一样的,也是js的运行环境,不管是你是什么操作系统,

只要安装对应版本的nodejs,那你就可以用js来开发后台程序。

这具有划时代的意义,意味着一直以来只能在浏览器上玩来玩去的js,可以做后端开发了,

从有了nodejs后就催生出一大批用js做后台开发的前端人员,这部分人员就是偏前端的“全栈程序员”。

记住,nodejs是和jvm同等地位的js运行环境,打开了前端人员走向后端的道路。

【js mvc框架】

相关框架:

框架太多,详见下面两篇文章

私人定制,十款最佳Node.js MVC框架

基于NodeJS的14款Web框架

类比Java中的:

ssh1(struts1+spring+hibernate),ssh2(struts2+spring+hibernate),ssm(springmvc+spring+mybatis)

详述:

上面说到nodejs打开了前端开发人员开发后端的大门,而且nodejs类比jvm,

那么学习java的人都知道,学习完jvm(基础)后该学什么了?

对,框架,

java中有哪些框架,正如上面所说,ssh1,ssh2,ssm等等,

这些框架都mvc框架。

既然nodej都有了,jvm出现了,那接下来就是js大神开始封装mvc框架,正如java大神开始封装mvc框架一样,

相对java流行了几种框架,nodejs对应的mvc框架就多的多了,

详见上面两篇文章,足够让你看的眼花缭乱。

其中比较有名的是expressjs。

记住,当你看到这些js框架的时候,微微一笑,原来就是写mvc框架,基于nodejs:

Sails. js,Total.js,Partial.js,Koa. js,Locomotive. js,Express. js,Flatiron. js

【js模块化】

相关概念:

commonjs,amd,cmd,umd

相关框架:

commonjs,seajs,requirejs,coolie

类比Java中的:

import,对就是import。。

详述:

如上所说,当有了nodejs(jvm),有了mvcjs(ssh)之后,

可想而知,每个mvcjs中会有多少js文件,这个时候js模块化就派上用处了,

当有人和你说js模块化如何如何,感觉自己很吊的时候,甩他一句,不就是java中的import吗?

对,虽然在前端看来js模块化如何牛x,如何吊,但是就java来说就是import。

看看下面两张图片就明白了,对比requirejs(amd)和java导包:

但是js中的模块化,还有很多规范,比如commonjs,amd,cmd,umd,感觉头大了吧,

其实简单的来说,就是commonjs是运行在nodejs端,amd,cmd,umd是运行在浏览器,

其作用就是import各种js文件,把js模块化管理,可以理解为java中的包管理,

详见这篇文章:http://coolie.ydr.me/introduction/commonjs-amd-cmd-umd.html

同样,一个mvc,js能做出来10+种框架,可想而知模块化,js也对应很多框架,

例如commonjs,requirejs,seajs等等。

记住,commonjs,requirejs,seajs等js模块化框架,遵循各种规范(amd,cmd,umd,commonjs),

nodejs和vuejs的关系的更多相关文章

  1. 初始化nodejs+webpack+vuejs

    安装nodejs 4.x 参考 curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo apt-get install ...

  2. nodejs和npm的关系【转】

    node.js是javascript的一种运行环境,是对Google V8引擎进行的封装.是一个服务器端的javascript的解释器. 包含关系: nodejs中含有npm,比如说你安装好nodej ...

  3. 现在啊还不太清楚 nodejs和coffeescript 的关系

    我怎么会思考这个问题,今天看到用coffeescript做的一个服务引导 挺好 看博客里提 安装node之后 呢 npm 可以安装coffeescript 难道 coffee 是 node的 一个方言 ...

  4. Windows 安装 Vue

    引言 在公司 linux 环境下安装不顺利,回家在 windows 下操作感觉到一种幸福 nginx 先安装了 nginx,其实跟 vue 没关系,只是打算用它做 web 服务,此处略过 nginx ...

  5. nvm、npm、nodejs的关系(转载)

    nvm.npm.nodejs的关系 为什么要了解nvm.npm.nodejs的关系: reactNative的项目构建都是有这几个工具进行构建管理. 掌握他们的关系,就能了解reactNative项目 ...

  6. webpack nodejs npm关系

    nodejs是js后端运行平台,可以把它看成java体系中对应的jdk,是三个里面最基础的.npm是nodejs的包管理工具,可以把它看成maven中包依赖管理那部分.webpack是前端工程化打包工 ...

  7. 前端和Nodejs的关系 简单理解

    前端使用JS脚本语言进行开发. JS脚本语言需要依赖一个平台运行,从而生成可视化的东西. Node.js提供这个平台,同时提供JS运行需要的一些插件.库.包.轮子.组件.功能等等. JavaScrip ...

  8. nodejs的第二天学习笔记

    一. Shell: 1) 常用的shell a) CMD: window+r 打开面板中输入cmd 回车   特点:很多都是window下面的指令 b) powerShell:   特点:它能够兼容w ...

  9. go——beego的数据库增删改查

    一直都不理解使用go语言的时候,为什么还要自己去装beego,以为使用go便可以解决所有的问题,结果在朋友的点拨下,才意识到: go与beego的关系就好比是nodejs与thinkjs的关系,因此也 ...

随机推荐

  1. 牛客多校第九场 E All men are brothers 并查集/组合论

    题意: 一开始有n人互不认识,每回合有两个人认识,认识具有传递性,也就是相互认识的人组成小团体.现在问你每个回合,挑选四个人,这四个人互不认识,有多少种挑选方法. 题解: 认识不认识用并查集维护即可, ...

  2. scrt 关闭退格键声音

    options-> session Options -> Terminal -> audio bell (删除勾选) 这样就可以在secureCRT 在出错时不‘滴滴’的响了.

  3. Rabbit MQ 客户端 API 开发

    项目开始 第一步首先需要引入对应的 jar 包 <!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --> & ...

  4. 8张图带你轻松温习Java知识

    年初四好,一图胜千言,下面图解均来自Program Creek 网站,目前它们拥有最多的票选. 如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1 字符串不变性 下面这张图展示了这段代码做了 ...

  5. java-day14

    多线程程序访问共享数据会产生安全问题 解决线程安全问题 同步代码块 synchronized(锁对象){ 可能出现线程问题的代码 } 同步方法 修饰符 synchronized 返回值类型 方法名() ...

  6. 编译 GNU binutils

    重新以 arm 用户登陆,让新设置的环境变量起作用. [arm@localhost arm]#su arm [arm@localhost arm]#cd ${SRC} [arm@localhost t ...

  7. 使用<script>标签在HTML网页中插入JavaScript代码

    新朋友你在哪里(如何插入JS) 我们来看看如何写入JS代码?你只需一步操作,使用<script>标签在HTML网页中插入JavaScript代码.注意, <script>标签要 ...

  8. Liunx下安装Oracle11g时Oracle Grid安装包下载向导

    下载Oracel 11g  Grid的安装包 Oracle官网 https://www.oracle.com 快捷访问路径:https://www.oracle.com/technetwork/dat ...

  9. leetcode-157周赛-5214-最长定差子序列

    题目描述: class Solution: def longestSubsequence(self, arr: List[int], difference: int) -> int: dp = ...

  10. python: 函数递归与尾递归

    如果一个函数在内部调用自己,那么这个函数就是递归函数. 例如一个阶乘函数:fact(n)=n! ,其实可以写成 fact(n)=n x fact(n-1). fact(n) 以递归的方式可以表示为: ...