Node.js学习总结(一)

1.Node.js基础概念

在 Node 中,采用 EcmaScript 进行编码
没有 BOM、DOM
和浏览器中的 JavaScript 不一样
既不是语言,也不是框架,它是一个平台

2.模块系统

在 Node 中没有全局作用域的概念
在 Node 中,只能通过 require 方法来加载执行多个 JavaScript 脚本文件

require 加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题
- 模块完全是封闭的
- 外部无法访问内部
- 内部也无法访问外部

模块作用域固然带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题

但是某些情况下,模块与模块是需要进行通信的
在每个模块中,都提供了一个对象:exports
该对象默认是一个空对象
要做的就是把需要被外部访问使用的成员手动的挂载到 exports 接口对象中
然后谁来 require 这个模块,谁就可以得到模块内部的 exports 接口对象

  • 核心模块
    • 核心模块是由 Node 提供的一个个的具名的模块,它们都有自己特殊的名称标识,例如
      • fs 文件操作模块
      • http 网络服务构建模块
      • os 操作系统信息模块
      • path 路径处理模块
      • 。。。。
    • 所有核心模块在使用的时候都必须手动的先使用 require 方法来加载,然后才可以使用,例如:
      • var fs = require('fs')
  • http
    加载 http 核心模块
    var http = require('http')
    • 端口号
      • ip 地址定位计算机
      • 端口号定位具体的应用程序
    • Content-Type
      • 服务器最好把每次响应的数据是什么内容类型都告诉客户端,而且要正确的告诉
      • 不同的资源对应的 Content-Type 是不一样,具体参照: link
      • 对于文本类型的数据,最好都加上编码,目的是为了防止中文解析乱码问题
  // 在 http 协议中,Content-Type 就是用来告知对方我给你发送的数据内容是什么类型
  res.setHeader('Content-Type', 'text/plain; charset=utf-8')
  res.end('hello 世界')
  // 如果你发送的是 html 格式的字符串,则也要告诉浏览器我给你发送是 text/html 格式的内容
  res.setHeader('Content-Type', 'text/html; charset=utf-8')
  res.end('<p>hello html <a href="">点我</a></p>')

`

  • 通过网络发送文件
    • 发送的并不是文件,本质上来讲发送是文件的内容
    • 当浏览器收到服务器响应内容之后,就会根据你的 Content-Type 进行对应的解析处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值