初入 node.js及常见内置模块

Node

什么是 node:

  • 官网说法
    Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine.
    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
  • 通俗的解释
    其实 node 就是用 javascript 语言写 后端
    也就是说,我们的 javascript 有了 node 以后,不光是一个前端语言,也是一个后端语言
    Node是一个后端环境,搭载的是javascript语言
    Node是个环境,不是语言
  • 前端 javascript
    1. 三大核心
      ECMAScript
      DOM
      BOM
    2. 操作内容
      浏览器
      解决兼容问题
  • 后端 javascript (node)
    1. 核心
      ECMAScript
    2. 操作内容
      后端代码
      数据库
  • 也就是说,node 我们不需要解决兼容问题,不需要 DOM 和 BOM,只关注业务逻辑就可以了

node下载

  • 直接node官网下载 https://nodejs.org/en/
  • 官网分为两个版本 LTS 以及 Current 版
    LTS 即 Long Term Support (LTS) schedule.长期支持版本 / 稳定版
    Current 为最新版 。
    选择 LTS 版本下载

node安装

  • 下载好以后,我们直接把下载好的文件双击运行,全部下一步,默认装C盘即可

检测安装是否成功

运行命令提示符 cmd window+r cmd
在这里插入图片描述
输入 node -v 成功显示版本号即为安装成功
在这里插入图片描述

NODE 的导入导出

  • node 的开发是模块化开发
  • 每一个 js 文件都是一个独立的模块
  • 都有自己独立的作用域
  • 我们可以通过 导入导出 的方式把多个 js 文件合并在一起

导入

在 node 里面,我们使用 require 来导入一个文件

// 我是 index.js 文件
require('./a.js')
console.log('我是 index.js 文件')

导出

  • 我们在写一个 js 文件的时候,可以向外导出一些内容
  • 将来在这个文件被导入的时候,就可以接受到一些内容
// 我是 a.js

// 每一个 js 文件都会有一个对象叫做 module
// 在 module 里面有一个成员,叫做 exports
// 每一个 js 文件会默认把 module.exports 导出
// 也就是说,我们向 module.exports 中添加什么内容
// 那么就会导出什么内容

module.exports.name = 'Jack'
module.exports.age = 18
  • 将来这个文件被导入的时候,接受到的内容就是一个对象,里面有两个成员
// 我是 index.js

const a = require('./a.js')

console.log(a) // { name: 'Jack', age: 18 }

模块化

  • 在 node 的开发过程中
  • 我们是把每一个功能独立做成一个模块
  • 然后在使用 导入导出 的方式把他们关联在一起
    • 利于维护
    • 准确定位
  • 我们一般把模块分为三种
    • 内置模块 (node 天生就带有的模块)
    • 自定义模块 (我们自己写的文件)
    • 第三方模块 (从网上下载的别人写好的模块)

NODE 常用的内置模块

fs 模块

提供了一个 API,用于以模仿标准 POSIX 函数的方式与文件系统进行交互。

  • 要使用此模块:const fs = require('fs');
  • 异步的读取某一个文件内的内容 (异步需要在回调中使用读取的内容)
 fs.readFile('./text.txt', 'utf8', function (err, data) {
    // err 表示读取的时候出现的错误
    // data 表示读取到的内容,如果出现错误,那么是 data 是没有内容的
})
  • 异步的向一个文件写入内容
 fs.writeFile('./text.txt', '我是要写入的内容', function (err) {
    // err 表示写入的时候出现的错误
    console.log('写入完成')
})
  • 异步追加文件
 fs.appendFile('./text.txt', '我是要写入的内容', function (err) {
    // err 表示写入的时候出现的错误
    console.log('追加完成')
})
  • 同步的读取一个文件
    const res = fs.readFileSync('./text.txt', 'utf8')
  • 同步写入文件
    fs.writeFileSync('./text.txt', '我是要写入的内容')

HTTP 模块

  • 因为 node 是一个服务端语言

  • 所以 node 一定也可以开启一个服务器,开启一个服务

  • http 这个模块就是专门用来开启服务,并且接受请求,返回响应的

  • http 也是一个内置模块,直接导入使用就行const http = require('http' )

创建一个服务

const server = http.createServer(function (request, response) {
    // 前端发来的每一个请求都会触发这个函数
    // request 包含着所有的请求信息
    // response 是所有的响应信息
})

监听一个端口

server.listen(8080, function () {
    // 这个函数会在服务开启成功以后执行
    console.log('listening on port 8080')
})

给出一个响应

  • 简单给出一个响应
const http = require('http')

http.createServer( (req , resp ) => {
    resp.end('hello world')
}).listen( 8080 , () =>{
    console.log( 'listening on port 8080')
})
  • 此时,打开浏览器
  • 地址栏输入 localhost:8080
  • 浏览器就会响应文字 hello world

在这里插入图片描述
在这里插入图片描述

path模块

  • path模块提供用于处理文件路径和目录路径的实用工具。 它可以使用以下方式访问: const path = require('path');

  • console.log(__dirname) 可以查看项目根路径 __dirname

  • path.parse

    • 方法返回一个对象,其属性表示 path 的重要元素。
    • dir <string>
    • root <string>
    • base <string>
    • name <string>
    • ext <string>
      在这里插入图片描述
const str = 'c://nz/code/index.js'
// path.parse 
console.log(path.parse(str))
{
  root: 'c:/',
  dir: 'c://nz/code',
  base: 'index.js',
  ext: '.js',  
  name: 'index'
}
  • path.format

    • 方法从对象返回路径字符串。 与 path.parse() 相反。
const path = require('path')
const obj = {
    root: 'c:/',
    dir: 'c://nz/code',
    base: 'index.js',
    ext: '.js',
    name: 'index'
}
console.log(path.format(obj))

c://nz/code\index.js

  • path.join

    • 方法使用平台特定的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径。
const path = require('path')
console.log(path.join(__dirname,'../teacher/nz1908-node-lesson'))

D:\H5-3-1\Node\teacher\nz1908-node-lesson

url模块

  • url 模块用于处理与解析 URL。 使用方法如下:const url = require('url')
  • url.parse

const url = require('url')
const baidu = 'http://www.baidu.com/pic/icon/index.html?id=3&from=index#top'
console.log(url.parse(baidu))

在这里插入图片描述

  • url.format(urlObject)

const url = require('url')
const obj = {
    // 协议
    protocol: 'http:',
    // 斜线
    slashes: true,
    // 认证
    auth: null,
    host: 'www.baidu.com',
    port: null,
    hostname: 'www.baidu.com',
    hash: '#top',
    search: '?id=3&from=index',
    query: 'id=3&from=index',
    pathname: '/pic/icon/index.html',
    path: '/pic/icon/index.html?id=3&from=index',
    href: 'http://www.baidu.com/pic/icon/index.html?id=3&from=index#top'
}
console.log(url.format(obj))

url.format

发布了38 篇原创文章 · 获赞 0 · 访问量 911

猜你喜欢

转载自blog.csdn.net/ZywOo_/article/details/104760410