Node.js基础入门

NodeJs介绍

NodeJs是构建在V8引擎上的 JavaScript Runtime

Node.js uses an event-driven, non-blocking I/O model

非阻塞 I/O
  • 阻塞:I/O时进程休眠等待I/O完成后进行下一步
  • 非阻塞:I/O时函数立即返回,进程不等待I/O完成
事件驱动
  • I/O等异步操作结束后的通知
  • 观察者模式

调试&项目初始化

线程:

进程内一个相对独立的,可调度的执行单元,与同属性一个进程的线程共享进程的资源

多线程:

启动一个进程,在一个进程内启动多个线程,这样,多个线程也可以一块执行多个任务

CPU密集 VS I/O密集
  • CPU 密集: 压缩 解压 加密 解密
  • I/O 密集: 文件操作 网络操作 数据库
环境
  • CommonJS 模块管理规范

    1.每一个文件是一个模块,有自己的作用域
    2.在模块内部module变量代表模块本身
    3.module.exports属性代表模块对外接口

  • global

  • process

require 规则
  • /表示绝对路径,./表示相对于当前路径
  • 支持 js,json,node 拓展名,不写依次尝试 build-in 模块或各级node_modules 内的第三方模块
require 特性
  • module 被加载的时候执行,加载后缓存
  • 一旦出现某个模块被循环加载,就只输出已经执行的部分,还未执行的部分不会输出
查看node_modules所在路径

npm root -g

exports 和 module.exports之间的区别:

exports可以说是module.exports的快捷方式,但是使用上也会有所不同,exports在指向单个变量时与module.exports的功能是相同的,但是在指向一个json类型的变量时功能又是不同了,我们来看看代码

module.exports = {
  a: 1,
  b: 2,
  test: 100
};

exports = {
  a: 1,
  b: 2,
  test: 100
};
全局变量 global:

1.CommonJS
2.Buffer,process, console
3.timer

基础API


简单Web Server


单元测试&发布


NodeJS爬虫系列

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容