npm安装好nodejs后,通过gitbash等客户端输入npm-v,上图显示npm的版本。那么什么是npm?官网定义:npm是JavaScript的包管理器,也是世界上最大的软件注册中心。发现可重用代码包-并以强大的新方式组装它们。简单的说,npm就是js(不仅是nodejs,还有react,react-native等)包管理工具(package也叫module),是目前最大的开源平台http://www.npmjs.com。你可以从npm服务器上下载别人写好的第三方包供自己使用,也可以将自己实现的功能提交给别人下载使用。npm常用命令://初始化目录(创建package.json)npminit//修改包下载源npmconfigsetregistryhttps://registry.npm.taobao.org修改包下载源,本例修改它到淘宝镜像。墙,你知道的。//下载第三方模块到本地npminstall//安装package.json的dependencies中的包到本地npminstallpackagename//下载包到本地npminstallpackagename-g//全局安装,每个项目可以共享,不用重复下载npminstallpackagename--save//在package.json的dependencies属性下添加packagename,就是官方的依赖。npminstallpackagename--save-dev//在package.json的devDependencies属性下添加packagename,即开发依赖依赖说明:npminstall安装npm包时,有两个命令参数可以将它们的信息写入包中。json文件。一个是npminstall--save,另一个是npminstall--save-dev。它们之间的区别是--save会将依赖包名称添加到dependencies键下的package.json文件中,--save-dev会将其添加到devDependencies键下的package.json文件中。--save是生产环境(开发应用程序时使用的框架和库)所需依赖项的声明,--save-dev是开发环境(构建工具、测试工具)所需依赖项的声明。正常使用npminstall时,会下载dependencies和devDependencies中的模块。当使用npminstall--production或将NODE_ENV变量的值指定为production时,只会下载dependencies中的模块。上图是安装express的结果。该目录下会增加一个node_modules文件夹,里面还会有一个express模块??//删除模块npmuninstallpackagename//更新模块npmupdatepackagename注意:上面的命令经常用到,其实还有还有一些,具体可以看:https://www.npmjs.com.cn/package.json上图是package.json的属性,核心是dependencies和devDependencies。package.json文件作用:在nodejs实践中,我们会发现nodejs的开发应用其实就是一个不断引用其他模块的过程。模块是一些功能的包。一些常用的功能已经打包发布在npm社区。我们只需要运行npminstallpackagename。当我们自己开发了一个应用系统的时候,我们想分享给其他人。这时候我们不需要共享我们引用的第三方模块,我们可以通过package.json来管理我们的依赖包。比如:我们的项目目录是wechat,在wechat目录下npminit,会在wechat目录下生成package.json,里面的dependencies属性会记录我们所依赖的模块。这个时候我们把微信项目的代码分享给大家。我们不需要发送node_modules文件夹(它会很大);其他的只需要在微信上执行npminstall,就可以在dependencies中下载需要的依赖包(模块)。模块概念模块(module),在nodejs中,以模块为单位划分所有功能,并提供模块加载机制。狭义上,每个js文件就是一个模块;而多个js文件通过require可以组成一个功能整体,称为广义模块。在nodejs中,在一个js文件中定义的变量和函数,只能在这个文件中有效。如果要使用外部文件,必须通过exports暴露出来,通过require使用外部文件。示例:a.js内容:varmsg='hellonodejs';exports.msg=味精;在b.js中使用a.js的msg变量,b.js内容:vara=require('./a.js');console.log(a.msg);//结果:hellonodejs总结:在js文件中,exports可以用来暴露很多东西,比如变量,函数,类等等,在user中,require即可。也就是说js文件是通过exports(具体有两种方式:1.module_exports,2.exports.variable)和require连接的,不是通过html连接的。require()方法的几种使用形式://1.相对路径和绝对路径require('./a.js'),require('/d/wechat/a.js')//2.不'。/'1.require('a.js')这时候nodejs会把这个文件当作node_module目录下的一个文件。注意:node_module文件不必在同一级别,它可以在任何祖先目录中。//3。不写'./'和'js'require('a'),这里是import文件夹,导入a文件夹下的入口文件(main在package.json中,默认是index.js)。即nodejs会引用node_modules目录下a文件夹下的index.js文件。下一节将使用nodejs实现restfulapi、cookie、session的简单示例。
