在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核心模块的更多相关文章

  1. node核心模块-vm

    vm vm是node的一个核心模块,核心功能官方文档介绍是: The vm module provides APIs for compiling and running code within V8 ...

  2. Node.js学习(第二章:node核心模块--fs)

    前言 Node.js中赋予了JavaScript很多在浏览器中没有的能力,譬如:文件读写,创建http服务器等等,今天我们就来看看在node中怎样用JavaScript进行文件的读写操作. 读文件 我 ...

  3. Node.js核心模块_全局变量、util学习

    全局对象 javascript的全局对象是window,他及其所有属性都可以在程序的任何地方访问.即全局变量. 而在node中全局对象是global,所有全局变量都是global对象的属性,包括其本身 ...

  4. node八-核心模块、包

    学会查API,远比会几个API更重要. 核心模块意义 -如果只是在服务器运行javascript代码,并没有多大意义,因为无法实现任何功能>读写文件.访问网络 -Node的用处在于它本身还提供可 ...

  5. Node.js核心模块-fs文件系统

    fs是file-system的简写,文件系统的意思.在Node中如果想要进行文件操作,就必须引入fs这个核心模块. 引入 const fs = require('fs') fs.readFile(pa ...

  6. 深入浅出node(2) 模块机制

    这部分主要总结深入浅出Node.js的第二章 一)CommonJs 1.1CommonJs模块定义 二)Node的模块实现 2.1模块分类 2.2 路径分析和文件定位 2.2.1 路径分析 2.2.2 ...

  7. Nodejs进阶:核心模块net入门与实例讲解

    模块概览 net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net. ...

  8. node js 模块分类

    核心模块 require('fs'); 核心模块是被编译成二进制代码 文件模块 require('../fs.js'); 对于加载模块时既没指出./ ../ /.../时,加载模块的搜索路径.如果'/ ...

  9. Node.js面试题:侧重后端应用与对Node核心的理解

    Node是搞后端的,不应该被被归为前端,更不应该用前端的观点去理解,去面试node开发人员.所以这份面试题大全,更侧重后端应用与对Node核心的理解. node开发技能图解 node 事件循环机制 起 ...

随机推荐

  1. 封装一个使用cURL以POST方式请求https协议的公众方法

    打开php7.2手册,搜索curl function getRequest($url,$type='get', $data = [], $timeout = 10) (需要更改){ $ssl = st ...

  2. 【转】react入门实例教程

    作者: 阮一峰 日期: 2015年3月31日 写在前面:原文链接http://www.ruanyifeng.com/blog/2015/03/react.html    github地址https:/ ...

  3. 内建函数之:reduce()使用

    #!/usr/bin/python#coding=utf-8'''Created on 2017年11月2日 from home @author: James zhan ''' print reduc ...

  4. Saiku调用WS接口(十四)

    Saiku调用WS接口 关于saiku集成系统单点登录告一段落,始终没想好怎么去做,主要是因为saiku有自己的权限定义,一直没想好关于saiku本身的权限信息以及用户信息怎么处理(在这里笔者希望已实 ...

  5. tensorFlow(六)应用-基于CNN破解验证码

    TensorFlow基础见前博客 简介 传统的验证码识别算法一般需要把验证码分割为单个字符,然后逐个识别.本教程将验证码识别问题转化为分类的问题,实现对验证码进行整体识别. 步骤简介 本教程一共分为四 ...

  6. scrapy的Middleware

    对于下载中间件 settings里的数字大小: process_request的顺序 数字越小,越先调用 process_response 的顺序, 数字越大,越先调用 返回值: process_re ...

  7. python笔记14-三元运算符

    a = 1b = 2#下面这个c = a if a>1 else b #和下面是一样的效果if a > 1: c = aelse: c = b #打印偶数s=[]nums = list(r ...

  8. wed

    先有一个无后缀的flag 文件 第一次改成 TXT 收索FLAG 得到了一段 flag.txt f返回到第一次修改后缀 改成RAR 打开RAR 发现一个 flag.txt 的文件 打开,即得到 fla ...

  9. 【转】FMX 动态创建及销毁(释放free)对象

    http://www.2pascal.com/thread-3037-1-1.html这是原文地址. (* ********************************************** ...

  10. java学习笔记39(sql事物)

    在之前的学习中,我们学习了使用PreparedStatement类,使用这个类消除了sql注入的隐患,可是,还有些一些其他的隐患,这里以银行转账业务为例, 假设  一个银行,张三在里面存了1000元, ...