1、npm install moduleNames
:安装Node模块
安装完毕后会产生一个node_modules
目录,其目录下就是安装的各个node模块。
node
的安装分为全局模式和本地模式。
一般情况下会以本地模式运行,包会被安装到和你的应用程序代码的本地node_modules
目录下。
在全局模式下,Node包会被安装到Node的安装目录下的node_modules
下。
全局安装命令为$npm install -g moduleName
。
获知使用$npm set global=true
来设定安装模式,$npm get global
可以查看当前使用的安装模式。
示例:
npm install express
默认会安装express
的最新版本,也可以通过在后面加版本号的方式安装指定版本,如npm install express@3.0.6
npm install <name> -g
将包安装到全局环境中
但是代码中,直接通过require()
的方式是没有办法调用全局安装的包的。全局的安装是供命令行使用的,就好像全局安装了vmarket
后,就可以在命令行中直接运行vm
命令
npm install <name> --save
安装的同时,将信息写入package.json
中项目路径中如果有package.json
文件时,直接使用npm install
方法就可以根据dependencies
配置安装所有的依赖包,这样代码提交到github
时,就不用提交node_modules
这个文件夹了。
2、npm view moduleNames
:查看node
模块的package.json
文件夹
注意事项:如果想要查看package.json
文件夹下某个标签的内容,可以使用$npm view moduleName labelName
3、npm list
:查看当前目录下已安装的node包
注意事项:Node模块搜索是从代码执行的当前目录开始的,搜索结果取决于当前使用的目录中的node_modules下的内容。$ npm list parseable=true可以目录的形式来展现当前安装的所有node包
4、npm help
:查看帮助命令
5、npm view moudleName dependencies
:查看包的依赖关系
6、npm view moduleName repository.url
:查看包的源文件地址
7、npm view moduleName engines
:查看包所依赖的Node的版本
8、npm help folders
:查看npm使用的所有文件夹
9、npm rebuild moduleName
:用于更改包内容后进行重建
10、npm outdated
:检查包是否已经过时,此命令会列出所有已经过时的包,可以及时进行包的更新
11、npm update moduleName
:更新node模块
12、npm uninstall moudleName
:卸载node模块
13、一个npm包是包含了package.json
的文件夹,package.json
描述了这个文件夹的结构。访问npm的json文件夹的方法如下:
$ npm help json
此命令会以默认的方式打开一个网页,如果更改了默认打开程序则可能不会以网页的形式打开。
14、发布一个npm包的时候,需要检验某个包名是否已存在
$ npm search packageName
15、npm init
:会引导你创建一个package.json文件,包括名称、版本、作者这些信息等
16、npm root
:查看当前包的安装路径
npm root -g
:查看全局的包的安装路径
17、npm -v
:查看npm安装的版本
模块接口的唯一变化是使用 module.exports = Hello
代替了exports.world = function(){}
。 在外部引用该模块时,其接口对象就是要输出的 Hello 对象本身,而不是原先的 exports
。
express
获取参数有三种方法:官网介绍如下
Checks route params (req.params), ex: /user/:id
Checks query string params (req.query), ex: ?id=12
Checks urlencoded body params (req.body), ex: id=
ejs
结尾的文件就是模版文件,可以看到在文件中我们用了三种标签方式(这种标签方式有过其它web开发经验的应该很好看懂)
1.<%= %>
这个标签在接到收到title: '<h1>Express</h1>'
时,从显示效果来看,他直接输出HTML标签到页面上,输出的是转义后的变量值
2.<%- %>
而这个标签,从显示效果上看,他没有直接输出HTML代码到页面上,输出的是没有转义后的变量值
3.<% %>
而这个标签,从显示上看,他循环了出来参数中的值,标签中是javascript
逻辑代码,注意括号的开闭合
Express
依赖于 connect
,提供了大量的中间件,可以通过 app.use
启用。 app.configure
中启用了5个中间件: bodyParser 、methodOverride 、 router 、 static
以及 errorHandler
。
bodyParser
的功能是解析客户端请求,通常是通过 POST 发送的内容。
methodOverride
用于支持定制的 HTTP 方法 ① 。
router
是项目的路由支持。
static
提供了静态文件支持。
errorHandler
是错误控制器。
app.get('/', routes.index);
是一个路由控制器,用户如果访问“ /
”路径,则由 routes.index
来控制。
最后服务器通过 app.listen(3000);
启动,监听3000端口。
Node.js
在调用某个包时,会首先检查包中package.json
文件的main
字段,将其作为包的接口模块,如果 package.json
或main
字段不存在,会尝试寻找 index.js
或 index.node
作为包的接口。
package.json
是 CommonJS
规定的用来描述包的文件,完全符合规范的 package.json
文件应该含有以下字段。
name
:包的名称,必须是唯一的,由小写英文字母、数字和下划线组成,不能包含空格。
description
:包的简要说明。
version
:符合语义化版本识别 ① 规范的版本字符串。
keywords
:关键字数组,通常用于搜索。
maintainers
:维护者数组,每个元素要包含 name 、 email
(可选)、 web
(可选)字段。
contributors
:贡献者数组,格式与 maintainers
相同。包的作者应该是贡献者数组的第一个元素。
bugs
:提交bug的地址,可以是网址或者电子邮件地址。
licenses
:许可证数组,每个元素要包含 type (许可证的名称)和 url (链接到许可证文本的地址)字段。
repositories
:仓库托管地址数组,每个元素要包含 type (仓库的类型,如 git )、
url
(仓库的地址)和 path (相对于仓库的路径,可选)字段。
dependencies
:包的依赖,一个关联数组,由包名称和版本号组成。