真的是简介
- “一个基于 Chrome V8 引擎的 JavaScript 运行环境。”
Node.js = 运行环境(浏览器➡️Node.js) + JavaScript库(I/O操作),阿里最先于使用其做线上大流量应用,以替代过去的PHP/Java Web。
要它干啥
做服务器:
框架 | 简介 |
---|---|
Express | 灵活的Web服务器开发框架 |
Koa | 基础的企业级应用框架 |
EggJS | 企业级框架和应用 |
HAPI | 适合更大更复杂的应用 |
做移动端混合应用:
框架 | 简介 |
---|---|
PhoneGap | 网页、App与本机功能的桥梁(摄像头、位置、文件等) |
Cordova | 基于PhoneGap,移动应用开发框架 |
Ionic | H5应用程序开发框架 |
做移动端原生应用:
框架 | 简介 |
---|---|
React-Native | 基于JavaScript和React的原生移动应用框架 |
NativeScript | 跨平台原生移动应用框架 |
WEEX | 与Vue.js结合的移动应用框架 |
还得慢慢来
模块module
- 让Node.js的文件可以相互调用,一个Node.js文件就是一个模块。
创建模块
- 创建名为
hello
的模块:
function hello() {
console.log("i am zander");
}
module.exports = hello();
exports
和module.exports
的区别
exports
只能这样用:exports.函数名=函数名()
- 而
module.exports
可以这样用:module.exports=函数名()
即
exports == module.exports
,使用上还是module.exports
更万无一失。
叮咛三点:
- 每个文件是一个模块,都有自己的作用域;
- 在模块内部module变量代表模块自身
- module.exports属性代表模块对外的接口,用来输出
require机制
- 用于从外部获取一个模块的接口,即获取模块的exports对象
加载模块
- 创建
main.js
文件,加载hello
模块
require('./hello')
啰嗦四句:
require('模块路径')
中的路径扩展名支持.js、.json、.node扩展名,不写则会依次尝试- 不写路径则视为
build-in或者各级
node_modules`内的第三方模块,如fs模块、chalk模块等,如
const chalk = require('chalk')
console.log(chalk.yellow('this is yellow chalk!'));
3.一个模块只会加载一次,即不能require
多次同一个模块
4. require具有缓存机制,第一次加载后会被缓存