Node.js — 内置API模块

2023-05-16

文章目录

  • 0.JS 与 Node.js的理解
  • ①内置API模块
    • 1. 导入 fs 模块,导入文件系统模块
    • 2. 导入 path 模块 ,读取文件,路径处理模块
    • 3.http(创建web服务器的)模块
      • 1.案例:实现clock的web服务器

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. 此时服务器作用:字符串搬运工
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js — 内置API模块 的相关文章

  • 通过 MailChimp 发送电子邮件

    我认为问题出在附近 api gt listSubscribers include libs mailchimp MCAPI class php options array list id gt list id subject gt Prov
  • Rails:使用 RestClient 的外部 API 集成(未定义的局部变量或方法“user”)

    我正在建设一个数字图书馆 我已经完成了很多需要的功能 我目前在将数字图书馆与学习管理系统 LMS 集成时遇到问题 我已经有一个数字图书馆的管理员身份验证系统 使用设计宝石 我的目标是允许想要访问数字图书馆的用户使用其学习管理系统 LMS 凭
  • 如何将 YouTube API 集成到我的 iPhone 应用程序中?

    我想将 YouTube API 集成到我的应用程序中 我该怎么做 附注 我正在为 YouTube 频道制作一个应用程序 我尝试以webview 但这让一切变得更糟 因为用户可以看到 YouTube 控件 搜索等 以及有关 YouTube i
  • PyCurl 请求在执行时无限挂起

    我编写了一个脚本来从 Qualys 获取扫描结果 每周运行一次以收集指标 该脚本的第一部分涉及获取过去一周运行的每个扫描的引用列表以进行进一步处理 问题是 虽然有时这会完美地工作 但有时脚本会挂在c perform 线 手动运行脚本时这是可
  • 如何使用 Sound Cloud API 按标签搜索特定用户的曲目?

    我想通过仅与我的用户名 即皇家歌剧院 相关的标签搜索曲目 例如 http api soundcloud com users royaloperahouse tracks client id 238947HSGDHSDG tags eric
  • 使用 PHP 发布到 Blogger

    我在使用 PHP 的 Blogger API 时遇到问题 我需要的是能够将新的博客文章发布到我的博客帐户 我使用的代码取自 Google API 页面 http code google com intl nl apis blogger do
  • 通过 Office API 将多个 Word 文档保存为 HTML

    我有大量的Word文档需要解析 由于它们都是从同一个模板创建的 我认为最好的方法是将它们保存为 HTML 文件并解析 HTML 本身 虽然将单个 Word 文档保存为 HTML 相当容易 但我还没有找到从 Word 内部执行批量过程的方法
  • 将 Django 模型映射到外部 API

    上下文 我有一个外部 API 提供数据并允许发布新数据或修补现有数据 API 响应示例 response requests get http api band 4 print response json id 4 name The Beat
  • 授予 Rails 应用 API 访问权限的最佳身份验证方法

    我想为我的网络应用程序提供经过身份验证的 API 访问 此类服务的消费者通常是其他网站 服务 验证这些用户身份的最佳方法是什么 OAuth openID http 身份验证 正如我们的工作一样 哪个最好 的答案是这样的 是 这取决于 HTT
  • 如何从网站中提取冠状病毒病例?

    我正在尝试从网站中提取冠状病毒 https www trackcorona live https www trackcorona live 但我得到了一个错误 这是我的代码 response requests get https www t
  • 使用 python 更新 Google 搜索方法

    我试图使用xgoogle https github com pkrumins xgoogle但我已经 3 年没有更新了 即使我设置每页 100 个结果 我也只能得到不超过 5 个结果 如果有人使用 xgoogle 没有任何问题 请告诉我 现
  • 中间件 API 的最佳实践是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们正在开发一个中间件 SDK 采用 C 和 Java 语言 供游戏开发人员 动画软件开发人员 阿凡达开
  • PHP 版本如何匹配“API=yyyymmdd”签名/标签?

    是否有明确且可靠的来源来找出哪个 PHP 发行版本 x y z 携带 使用哪个 API yyyymmdd 签名 标签 PHP 的版本控制存储库是 PHP 版本与其 API 日期版本之间相关性的权威来源 请记住 仅主要版本PHP 的版本 例如
  • Yammer API 限制

    Yammer Rest api 文档表示 每个应用程序每个用户在 10 秒内最多可以发出 10 个请求 问题 什么是user这里 是为当前经过身份验证的 yammer 用户发出请求的 IP 地址还是承载令牌 如果我们所有的用户都使用相同的外
  • 寻找Android源代码

    Android API 是开源的吗 如果是这样 我想看看他们如何实现 ListView 对象的 smoothscroll 方法 这是在 API 级别 8 中实现的 但我想针对早期的 API 级别进行构建 我该如何找到这个 是的 它是开源的
  • Streamlabs API 405 响应代码

    我正在尝试使用Streamlabs API https dev streamlabs com Streamlabs API 使用 Oauth2 来创建应用程序 因此 首先我将使用我的应用程序的用户发送到一个授权链接 其中包含我的应用程序的客
  • 彭博开放 API

    彭博开放 API最近宣布 http www computerworlduk com news it business 3334375 bloomberg market data api made public 这只是彭博软件开发工具包 ht
  • Spotify Apps API:库类不会返回用户播放列表

    我试图获取一个包含用户库中所有播放列表的数组 http developer spotify com download spotify apps api reference dcdebc652c html 其他类属性 专辑 艺术家 加星标的播
  • 在Wordpress中通过API创建新用户时如何发送电子邮件密码?

    可以使用以下行通过 API 创建新用户 user id wp insert user user data 我想知道如何向新创建的用户发送包含其密码的电子邮件 Wordpress API 中是否有任何函数可以处理这项工作 还是我应该自己创建并
  • Android GCM 服务器的 API 密钥

    我有点困惑我应该为 GCM 服务器使用哪个 API 密钥 在文档中它说使用 android api 密钥 这对我不起作用并且总是给出未经授权的 http developer android com google gcm gs html ht

随机推荐