Node核心模块
在Node中,模块主要分两大类:核心模块和文件模块。核心模块部分在 Node 源代码的编译过程中,编译进了二进制执行文件。在 Node 进启动时,部分核心模块就被直接加载进内存中,所以这部分核心模块引入时,文件定位和编译执行这两个步骤可以省略掉,并且在路径分析中优先判断,所以它的加载速度是最快的。如:HTTP 模块 、URL 模块、Fs 模块都是 nodejs 内置的核心模块,可以直接引入使用。
http模块
在我们使用PHP编写后台代码的时候,通常需要Apache或者ngnix的http来处理客户端的请求响应。不过对node.js来说,概念完全不一样了,使用Node.js时,我们既能实现一个应用,也能实现整个http服务器。
基本使用
1,使用http模块的时候,首先需要引入该模块

2,然后使用createServer创建一个服务器,

3,并且监听端口

最后运行程序:打开终端,切换到文件的根目录,执行命令node 文件名再回车就可以了。
程序启动后,在浏览器中打开http://localhost:8888/,就会在终端中看到相关的打印

此时,我们会发现浏览器的地址栏出一直处于加载状态,因此需要在服务器的回调函数中执行end方法来是web服务器停止处理脚本并返回当前结果。
另外,在上面,我们使用的是默认的localhost,但是有的时候,localhost是被占用了,需要使用其他的IP来运行,只需要在监听端口处添加IP作为第二个参数就可以了。


这里默认会有两个请求,第二个是地址栏图标的请求。
添加响应
在上面的回调函数中使用到了两个参数:req表示请求,res表示响应,如果要给请求添加响应,首先需要设置一个响应头,在这个响应头中指定http状态码,文件类型和字符集

然后使用write添加响应内容



完整代码如下

既然req是表示请求,里面最重要的就是req.url了,通过req.url拿到了用户的请求地址后,如何解析出我们想要的数据,就需要用到URL模块了。
URL模块
和使用http模块一样,使用URL模块,也是需要先引入再使用,在URL模块中,主要有一下三个方法会经常被用到。
url.parse()
这个方法主要用来解析URL



在上面的http模块中已经提到了,每次都会发出两个请求:IP请求和图标请求,所以下面过滤一下图片请求,然后添加一个复杂的请求。


此时,虽然我们打印出了请求的用户名和密码,但是如果想要获取这些信息,还需要在url.parse中添加第二个参数,将query里面的字段格式化。




url.format()
url.format()是url.parse()的逆操作。

运行程序,刷新浏览器,就可以看到终端的打印

url.resolve()
url.resolve()方法用于添加或者替换地址。


Node核心模块的更多相关文章
- node核心模块-vm
vm vm是node的一个核心模块,核心功能官方文档介绍是: The vm module provides APIs for compiling and running code within V8 ...
- Node.js学习(第二章:node核心模块--fs)
前言 Node.js中赋予了JavaScript很多在浏览器中没有的能力,譬如:文件读写,创建http服务器等等,今天我们就来看看在node中怎样用JavaScript进行文件的读写操作. 读文件 我 ...
- Node.js核心模块_全局变量、util学习
全局对象 javascript的全局对象是window,他及其所有属性都可以在程序的任何地方访问.即全局变量. 而在node中全局对象是global,所有全局变量都是global对象的属性,包括其本身 ...
- node八-核心模块、包
学会查API,远比会几个API更重要. 核心模块意义 -如果只是在服务器运行javascript代码,并没有多大意义,因为无法实现任何功能>读写文件.访问网络 -Node的用处在于它本身还提供可 ...
- Node.js核心模块-fs文件系统
fs是file-system的简写,文件系统的意思.在Node中如果想要进行文件操作,就必须引入fs这个核心模块. 引入 const fs = require('fs') fs.readFile(pa ...
- 深入浅出node(2) 模块机制
这部分主要总结深入浅出Node.js的第二章 一)CommonJs 1.1CommonJs模块定义 二)Node的模块实现 2.1模块分类 2.2 路径分析和文件定位 2.2.1 路径分析 2.2.2 ...
- Nodejs进阶:核心模块net入门与实例讲解
模块概览 net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net. ...
- node js 模块分类
核心模块 require('fs'); 核心模块是被编译成二进制代码 文件模块 require('../fs.js'); 对于加载模块时既没指出./ ../ /.../时,加载模块的搜索路径.如果'/ ...
- Node.js面试题:侧重后端应用与对Node核心的理解
Node是搞后端的,不应该被被归为前端,更不应该用前端的观点去理解,去面试node开发人员.所以这份面试题大全,更侧重后端应用与对Node核心的理解. node开发技能图解 node 事件循环机制 起 ...
随机推荐
- android SDK SDK Manager.exe 无法打开,一闪而过最终解决办法
这个问题是由于Android Studio 自动更新之后 ,针对android-sdk-windows\tools 这个文件进行了拆分删除 这里做一下说明: 经过Android studio处理之后, ...
- 详细解析HTML基础结构
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 第7天【find命令、if语句、磁盘管理、文件系统管理】
find命令详解(01)_recv Find及文件特殊权限: 文件查找工具: Find Find [OPTON]…[查找路径] [查找条件] [处理动作] 查找路径:指定具体目标路径,默认为当前路径 ...
- mysql和mariadb支持insert delayed的问题
分析一个开源项目,往数据库里添加日志,为了避免写入日志信息影响正常业务,日志的插入方式采用了insert delayed的方式. 打印其数据库语句,复制到mysql执行报如下错误: ERROR 161 ...
- js回顾
回顾 js 组成部分 ECMAScript BOM DOM 变量声明~~ var 变量名 = 初始化值: ...
- Python中的装饰器的简单介绍02
这篇博文转载自伯乐在线的12步轻松搞定python装饰器,重构成python3. 1. 函数 在python中,函数通过def关键字.函数名和可选的参数列表定义.通过return关键字返回值.我们举例 ...
- python全栈开发笔记---------字符串格式化
字符串格式化 %s 可以接收任何值, %d只能接收整形 .其他类型报错 msg ='i am %s my body' %'ales' print(msg) #i am ales my body msg ...
- Linux 云服务器中安装 rinetd 进行转发端口实现
端口转发映射的程序叫rinetd,直接make编译安装即可. wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -x ...
- boot项目swagger接口调试工具默认访问路径
今天第一次接触boot项目,项目里集成了swagger接口调试工具,以前写项目的时候在swagger 文件夹里可以找到访问路径,换成boot项目以后找不到swagger文件夹了,百度了一下,boot项 ...
- ef core中如何实现多对多的表映射关系
文档:https://docs.microsoft.com/en-us/ef/core/modeling/relationships class MyContext : DbContext { pub ...