【转载】nodejs,npm,express分别什么?
很多刚刚接触nodejs的初学者,都会经历一个很繁冗的环境安装过程。
一般主要要安装nodejs,npm和express三样东西。那么这三样东西分别是干什么的呢?
本篇文章就大致介绍一下这三样东西分别是干什么的:
nodejs
首先要说的是nodejs,既然我们要装nodejs,那这个其实就没什么好解释的。
nodejs就是运行框架,就像C#和.net,JAVA和JRE一样,nodejs就是nodejs。
所以其实装了nodejs以后,nodejs其实就已经可以编码和运行了。
npm
npm是一个JavaScript的包管理程序。
它的用途和.net中的NuGet,Java中的Maven是同一种作用。
对于不了解NuGet和Maven也不了解的同学可以继续往下看:
什么是包管理?
我们开发程序的时候,经常会选择一些第三方框架来帮助我们专注于实现业务。
那么一旦要选择第三方框架,就一定会存在以下问题:
我要去哪里下载我要的第三方框架?
我要用什么版本?
如何更新我已经使用的第三方框架?
那么包管理器就是为了解决上述问题而存在的。
使用者安装了包管理器以后,只要告诉包管理器,我要用什么框架,什么版本的。剩下来的事,包管理器就全部帮你完成了,帮你下载指定版本的框架到你需要的项目中间并引用,甚至于参与到编译和运行中去。
npm就是这样的一个程序,它提供了我们用于JavaScript开发所需要的各种常见第三方框架的下载。
Express
经常会看到nodejs环境安装中涉及到Express的安装,这个东西也是非常难装的,经常会出现各种各样的问题。
那么Express又是干什么的呢?
对nodejs有一些了解同学一定知道,nodejs本身其实只提供了文件、网络端口监听、字符集等基本的操作。
但是如果要往一个成熟的BS架构服务端上去做的话,似乎还少了些什么?比如路由功能、异常处理等等。
如果我们每次做项目都要把一些BS架构服务端所需要的基本骨架都编写一次,肯定大家都不乐意。
那么Express就帮助你完成了这些事情。
Express是nodejs的一套框架。
对,它只是一套框架,并不是nodejs的真身,没有它我们一样可以做nodejs,只不过——会累一些。。。
Express提供了很多面向服务端骨架的内容,让我们尽可能的直接编写那些属于业务逻辑的代码,降低了对错误处理的难度等等
Express在较新的版本中由两个部分组成:
express
express-generator
前者是负责运行时的框架。
后者是负责生成一个express项目的标准目录结构,开发人员只要按照相应的目录存放相应的文件,express框架就可以顺利的运行起来。
文章为作者原创,转载请注明出处 http://www.zizhusoft.com/note/show.aspx?id=b67b2069-4c15-4008-b0f3-6cdc7be3f2a1 ,谢谢合作
【转载】nodejs,npm,express分别什么?的更多相关文章
- 阿里云centos 安装 nodejs npm express
yum check-update yum install vsftpdvi /etc/vsftpd/vsftpd.conf anonymous_enable=NO service vsftpd sta ...
- npm install Error:EPROTO: protocol error, symlink '../mime/cli.js' -> '/vagrant/src/nodejs/node_modules/express/node_modules/send/node_modules/.bin/mime'
我在ubuntu上使用npm安装依赖是出现下面错误: npm ERR! Linux 3.13.0-101-genericnpm ERR! argv "/usr/bin/nodejs" ...
- (转 留存)Windows环境下的NodeJS+NPM+GIT+Bower安装配置步骤
Windows环境下的NodeJS+NPM+GIT+Bower安装配置步骤 标签: NodeJSnpmbower 2015-07-17 16:38 3016人阅读 评论(0) 收藏 举报 分类: G ...
- Windows环境下的NodeJS+NPM+Bower安装配置步骤
Windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native),只需要登陆官网(http://nodejs.org/),便可以看到首页的“INSTALL”按钮 ...
- 阿里云主机Nginx下配置NodeJS、Express和Forever
https://cnodejs.org/topic/5059ce39fd37ea6b2f07e1a3 AngularJS中文社区即运行在阿里云主机上,本站使用Nginx引擎,为了AngularJS,我 ...
- (转)如何制作nodejs,npm “绿色”安装包
摘自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=8625039&id=3817492 由于公司环境 ...
- nodejs下express+ejs环境搭建
nodejs下express+ejs环境搭建 分类: Nodejs 1.进入需要创建项目的目录 cd F:\nodeCode 2.创建一个带ejs模板工程,工程名为haha e ...
- nodejs之express静态路由、ejs
1.静态路由与ejs使用 /** *1.安装ejs npm install ejs --save-dev * *2.express 里面使用ejs ,安装以后就可以用,不需要引入 * *3.配置exp ...
- Windows 系统下设置Nodejs NPM全局路径
Windows下的Nodejs npm路径是appdata,很不爽,想改回来,但是在cmd下执行以下命令也无效 npm config set cache "D:\nodejs\node_ca ...
- ubuntu14.04下nodejs + npm + bower的安装、调试和部署
1. 简介 本文介绍ubuntu14.04下nodejs+npm+bower的安装.调试和部署 参考文档 https://docs.npmjs.com/getting-started https: ...
随机推荐
- CLR via C# 3rd - 07 - Constants and Fields
1. Constants A constant is a symbol that has a never-changing value. When defining a constant ...
- Android之ProgressBar初步应用
这里利用 ProgressBar 即时显示下载进度. 途中碰到的问题: 1.主线程中不能打开 URL,和只能在主线程中使用 Toast 等 2.子线程不能修改 UI 3.允许网络协议 4.暂停下载和继 ...
- Lae程序员小漫画(二),仅供一乐
Lae软件开发,快乐程序员!
- setInterval和clearInterval
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- tabelView右滑选择进行删除
如何使用UITableViewRowAction实现右滑选择呢? 1.在iOS8以前,我们实现tableview中滑动显示删除,置顶,更多等等的按钮时,都需要自己去实现,在iOS8中系统已经写好了,只 ...
- 关于vue.js的计算属性练习代码
参照官网联系如下: <!DOCTYPE html><html lang="en"><head> <meta charset="U ...
- cocos2d-x 帧循环不严谨造成场景切换卡顿
最近在用cocos2d-x做引导界面,2dx版本是2.2.3,场景切换加上了效果,所有资源都已经使用texturepacker打包预加载,但是在实际运行调试中,场景切换相当卡顿. 各种纠结后,无意中将 ...
- android 观察者模式
1:观察者模式: 1:使用场景:一般使用在自定义控件的事件点击监听上面(或者封装方法进行回调) 2:写观察者模式步骤: (1):声明一个接口 (2):接口里面封装一个抽象方法 (3):需要封装一个 ...
- unsigned char 类型
在蓝牙4.0的开发中,很多数据类型都用到了 unsigned char ,我觉得用这个类型的一个原因是相比较于整型,它占的空间更少. 比如: unsigned char a = 1; // 占1个字 ...
- linux下配置lamp时候出现The requested URL /info.php was not found on this server问题
在经历修改各种配置文件和各种文件权限后,发现了怎么解决 On newer versions of Ubuntu, the document root is set to /var/www/html i ...