http 模块:
1: 使用node 轻松构建一个Web 服务器
在Node 中专门提供一个核心模块: http 模块
2: http 模块的职责就是帮组创建服务器的
3: 加载http 核心模块
var http = require('http');
使用http.createServe() 方法创建Web 服务器, 返回一个Server 的实例对象。
var server = http.createServer();
服务器要干嘛?
提供服务器对象: 对象数据的服务
发送请求
接受请求
处理请求
发送响应 (给个反馈)
4: server.on('request', function() {
console.log('收到客户端的请求了')
// request 请求事件处理函数, 需要接受两个参数
request 请求对象:
请求对象可以用来获取客户端的一些请求信息, 比如说请求路径
Response 响应对象
响应对象: 可以给客户端发送响应请求消息
response 对象有一个方法, write 可以用来给客户端发送响应请求的数据。
write 方法可以使用多次, 但是最后一定使用end 来结束响应。 否则客户端会一直等待响应。
上边的方式比较麻烦, 推荐使用更加简单的方式实现。 在直接end 的同时, 发送请求。
})
在浏览器地址栏中所有的请求路径: 都是以/ 开头的。 是浏览器默认添加的, 如果不添加 /
相当于端口号改变了。 (添加/ 表示浏览器的默认行为)
res.end();
响应数据只能是二进制数据, 或者字符串类型
响应数据类型
数字
对象
数组
布尔值都不可以的
如果相应一个数值类型的话, 就会报错。 buffer: 就是二进制数据。
res.end(JSON.stringify(products)); 响应数据转化为字符串。
5: 绑定端口号, 启动服务器
server.listen(3000, function() {
console.log('服务器启动成功了, 可以访问本机')
})
nodejs 中的EcmaScript 语法规则:
1: EcmaScript 中没有BOM 和 DOM
node 中有核心模块 第三方模块 自定义模块
2: 核心模块:
Node 为 javaScript 提供了服务器级别的API, 这些API 绝大多数都被包裹到了一个具名的的核心模块中
去。
例如: 文件操作模块'fs' 核心模块
服务器模块 'http' 创建服务器模块
'path' 路径核心模块
'os' 操作系统核心模块。
3: os 模块用来获取机器信息的
var os = require('os');
path 模块用来操作路径的
var http = require('http'); 服务器模块
4: 获取当前的机器的CPU 信息
console.log(os.cpus()); cpus(): 是一个方法
5: // 获取当前的机器内存 (memory);
console.log(os.totalmen()); totalmen(): 获取当前机器的内存
6: 获取一个文件路径的扩展名
// extname extension name (扩展名)
console.log(path.extname('c:/a/b/c/d/hello.txt')) // .txt 文件
在node中 require 关键字是用来加载的模块的。 require 是一个方法
在fs 核心模块中: 删除文件是使用 unlink 方法
const fs = require('fs');
// 第一个参数文件路径
// 第二个参数是回调函数
fs.unlink('文件路径', (err, data)=> {
err: 代表删除失败的回调函数
data: 表示删除成功的回调函数
if(err) throw err; 如果er为真, 则抛出异常。
})
7: fs.mkdir(path, callback()) 第一个参数: 是路径 第二个参数是: 回调函数
8: fs.readdir(path, callback()) 第一个参数: 文件路径 第二个参数: 回调函数 (异步)
os 核心模块: 就是包含 operation system 操作系统模块 os模块: 操作系统模块