Node.js — 内置API模块

0.JS 与 Node.js的理解

  1. 浏览器中JS组成:JS核心语法,webAPI

  2. JS在浏览器中被执行原因:待执行的JS代码 => JS解析引擎(不同浏览器解析引擎不同)

  3. 为什么JS可以操作DOM,BOM:浏览器内置其API函数

  4. 浏览器中JS运行环境(代码运行所需必要环境):Chrome浏览器运行环境:V8引擎(负责解析和执行JS代码)和内置API函数(运行环境提供的特殊接口,只能在所属的运行环境中被调用)

  5. JS运行环境:前端运行环境(浏览器),后端运行环境(Node.js)

  6. ————————————————我是分割线——————————————————

  7. Node.js 是 一个基于Chrom V8引擎的JS 运行环境,无法调用DOM和BOM等浏览器内置API

  8. Node.js 作用:快速构建 Web 应用,构建跨平台应用,构建API接口项目,读写和操作数据库,创建实用的命令行工具辅助前端开发。。。。。

  9. node.js 学习路径:JS基础语法- Node.js内置API模块(fs,path,http)-第三方API模块(express,mysql)

①内置API模块

1. 导入 fs 模块,导入文件系统模块

  1. 写入文件内容 fs.writeFile(‘文件名称’,‘添加内容’,functuon(err) { 可以是判断条件 })
    1. fs.writeFile()方法只能用来创建文件,不能用来创建路径
    2. 重复调用fs.writeFile()只能写入同一个文件,新写入的内容会覆盖之前的旧内容
  2. 读取文件内容 fs.readFile(‘.文件名称’,‘utf8’,function(err,dataStr){ 判断条件 }

2. 导入 path 模块 ,读取文件,路径处理模块

  1. 路径的拼接 path.join
path.join(任意多个路径片段),多个路径拼接一个完整路径字符串
    ../ 抵消前边路径 
    const pathStr = path.join('/a','/b/c','../','./d','e')  \a\b\d\e
    读取当前文件下的,加path会自动去掉拼接错误的 . 
    const pathStr2 = path.join(__dirname,'/1.txt')
  1. 返回输出带(不带)后缀的文件名 path.basename(fpath)
  2. 返回文件名的后缀 path.extname(fpath)

3.http(创建web服务器的)模块

  1. 客户端:在网络节点中,负责消费资源的电脑;
  2. 服务器:负责对外提供网络资源的电脑,互联网中每台Web 服务器都有自己的IP地址(每台计算机的唯一地址),开发期间,自己电脑既可以做服务器也可做客户端,浏览器输入 127.0.0.1 这个IP地址(也就是 localhost ),就可吧自己电脑当服务器访问了
  3. 通过http模块提供的Http.createServer()方法,就能方便的把一台普通电脑,变成一台web服务器,从而对外提供Web资源服务。
  4. 域名地址:由于IP地址不直观而被创造的字符型地址方案,使用时会被域名服务器(DNS)转化为IP地址
  5. 端口号:类似门牌号,将客户端发送过来的请求准确的交给WEB服务进行处理。
    1. 一台电脑可以运行无数web服务,每个web服务对应唯一端口号。
    2. 实际应用中,URL中的80端口可以被省略
  6. 应用:
    1. 导入模块 const http=require('http')
    2. 创建web服务器实例 const server = http.createServer()
    3. 为服务器实例绑定request事件,监听客户端的请求
      server.on('request', (req, res) => { console.log('someone visit our web server!'); })
    4. 启动服务器
      server.listen(80, () => { console.log('http server running at http://127.0.0.1:80'); })
  7. req 请求对象:request请求事件中,访问与客户端相关的数据或属性
server.on('request', req => {
    // req.url 是 客户端请求的URL地址
    const url = req.url
        // req.method 是 客户端请求的方法
    const method = req.method
    const str = `Your request url is ${url},and request method is ${method}`
    console.log(str);
})

其中 req 地址 url 和方法 method 可以通过postman改变
8. res 响应对象 :request请求事件中,访问与服务器相关的数据或属性 .

  1. res.end( ) 向客户端发送指定内容,并结束这次请求的处理过程
  2. 防止响应中文乱码 :设置响应头 Content-Type值为 text/html;charset=utf-8
	const str = `你打开的是 ${url},并且相应端口是 ${method}`

    // 防止中文乱码,设置响应头Content-Type值为 text/html;charset=utf-8
    res.setHeader('Content-Type', 'text/html;charset=utf-8')

仍出现乱码请重启服务

  1. 不同url响应不同 html 内容
const http = require('http')
const server = http.createServer()
server.on('request', function(req, res) {
    const url = req.url
        // const method = req.method
    let content = '<h1>404 Not Found!</h1>'
    if (url === '/' || url === '/index.html') {
        content = '<h1>首页</h1>'
    } else if (url === '/about.html') {
        content = '<h1>关于页面</h1>'
    }
    res.setHeader('Content-Type', 'text/html;charset=utf-8')
    console.log(content);

    res.end(content)
})
server.listen(80, () => {
    console.log('server running at http://127.0.0.1');
})

1.案例:实现clock的web服务器

  1. 核心思路:把文件的实际存放路径(磁盘目录内),作为每个资源的请求 url 地址
    (浏览器),<通过自己写的·web服务器转化>
  2. 注意:浏览器无法直接向磁盘目录发送请求,磁盘目录也无法直接向浏览器发送接受的响应。
  3. 浏览器 向 web服务器发送请求,把请求的url地址当做读取文件的路径,再到磁盘读取文件;读取完成后在web服务器内将读取到的内容(字符串)通过res.end( ) 响应给客户端,再向浏览器发送响应。
  4. 此时服务器作用:字符串搬运工
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值