Node.js特点:
可以用Javascript来搞后端
速度很快
可以读文件
JS分为两块
1.客户端JS,执行在浏览器上
2.服务器端JS,执行在服务器
- Node.js的包管理工具npm,是全球最大的开源库生态系统
- Node.js是一个基于Chrome V8引擎
Node.js薪资高,人才少
主流模块规范
AMD 异步模块定义
CMD(Common Module Definition)
Commonjs:采用同步加载文件方式,适用于服务端
NodeJs模块基础
nodeJS中所有的功能都是以模块形式存在的,每一个文件就是一个模块
模块与模块之间相互独立,若在一个模块中使用另一个模块的内容,就要引入模块,这也会导致那个模块的数据暴露
exports.
exports是暴露对象,可以将模块内部的数据暴露到引用出
主模块
一个项目只允许有一个主模块,该项目通常命名为main.js index.js app.js package.json
是整个项目的启动模块,主模块对整个项目的其他模块进行统筹调度
所有用户编写的代码都自动封装在一个函数中
通过
console.log(arguments.callee.toString())
可以看出用户编写的代码都会封装成一个函数function
$ node 01
function (exports, require, module, __filename, __dirname) { // JavaScript Docu
ent
console.log(arguments.callee.toString())
var obj = require('./str.js');
console.log(obj);
obj.show();
}
{ str: 'asc', show: [Function] }
this is a show
同时可以发现该函数有五个参数
exports: 暴露对象,可将模块中的数据暴露给引入的地方
require: 引入模块的函数
module: 模块对象
_filename: 当前模块的文件名
_dirname: 当前模块所在的路径
require函数
作用:在当前模块里加载另外一个模块
引入模块分类:
1.自定义模块
2.第三方模块
require的默认路径不在当前目录
查找模块的默认路径在node_modules文件夹目录中
因此require('./str.js');
中的./
不能省略
https://www.npmjs.com
上面包含大量第三方包,也可以在上面上传自己的包
当模块被多次执行时,模块只执行一次,但是返回值赋给每个执行的变量
exports函数
暴露,将模块中需要共享给其他模块的数据暴露到引入处
exports.属性名=值
exports.方法名=函数
exports是module.exports对象的一个引用,不能改指向,只能添加属性和方法
package 包
package.json是package的包描述文件s
如何创建package文件
在命令行中输入npm init
将会逐步引导创建
版本 x.y.z
x:大版本
y:中版本
z:小版本
package name
包名称
version
版本
description
描述
entry point
入口文件(主文件)
dependencies
依赖
devDependencies
开发依赖(开发的时候依赖,使用的时候不依赖,比如某些打包工具)
scripts
author
作者
npm i <包的名称> -g //全局安装
cnpm
是一个淘宝NPM镜像,只能下载,不能上传(只读),下载会更快
安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
使用方法:
cnpm install <包名称>
Node.js作用域
模块中使用var 定义的变量为局部作用域,只能在该模块中使用,要在其他模块中使用就要用exports
暴露
或者使用global
global.name=""
即global全局对象
Q.E.D.
Comments | 0 条评论