node.js 包管理工具 npm,底层依赖,常见内置模块,搭建本地服务

前言

  • node.js 是一个 JS 的服务端运行环境,是在 JS 语言规范的基础上,封装了一些服务端的运行时对象,让我们能够简单实现非常多的业务功能。
  • 如果我们只使用 JS 的话,实际上只是能进行一些简单的 逻辑运算。node.js 就是基于 JS 语法增加与操作系统之间的交互

版本管理、

  • npm 是 node.js 内置的一款工具,目的在于安装和发布符合 node.js 标准的模块,从而实现社区共建的目的繁荣整个社区
  • npx 是高版本npm@5 之后新增的一个命令,它使得我们可以在不安装模块到当前环境的前提下,使用一些 cli 功能
npm i -g webpack 
//缩写命令 安装全局 webpack 
npx webpack
//以上为运行命令,但在依赖或者全局内不存在,会先安装后执行

底层依赖

  • V8 引擎: 主要是 JS 语法的解析,有了它才能识别 JS 语法
  • libuv: c 语言实现的一个高性能异步非阻塞 IO 库,用 来实现 node.js 的事件循环
  • http-parser/llhttp: 底层处理 http 请求,处理报文, 解析请求包等内容
  • openssl: 处理加密算法,各种框架运用广泛
  • zlib: 处理压缩等内容

常见内置模块

node.js 中最主要的内容,就是实现了一套 CommonJS 的模块化规范,以及内置了一些常⻅的模块

  • fs: 文件系统,能够读取写入当前安装系统环境中硬盘的数据
  • path: 路径系统,能够处理路径之间的问题
  • crypto: 加密相关模块,能够以标准的加密方式对我们的内容进行加解密
  • dns: 处理 dns 相关内容,例如我们可以设置 dns 服务器等
  • http: 设置一个 http 服务器,发送 http 请求,监听响应等
  • readline: 读取 stdin 的一行内容,可以读取、增加、删除我们命令行中的内容
  • os: 操作系统层面的一些 api,例如告诉你当前系统类型及一些参数
  • vm: 一个专⻔处理沙箱的虚拟机模块,底层主要来调 用 v8 相关 api 进行代码解析

以下搭建本地服务

静态html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>nodeDemo</title>
</head>
<body> <h1>nodeDemo界面</h1> </body>
</html>
在html当前目录创建 serve.js,以下为内容
const http = require('http')
const fs = require('fs')
const url = require('url')
const homeName = '127.0.0.1'
const port = '333'
const server = http.createServer((req,res)=>{
    // res.statusCode = 200
    // res.setHeader('Content-type','text/plain')
    var pathname = url.parse(req.url).pathname;
    // 从文件系统中读取请求的文件内容
    fs.readFile(pathname.substr(1), function (err, data) {
        if (err) {
           console.log(err);
           // HTTP 状态码: 404 : NOT FOUND
           // Content Type: text/html
           res.writeHead(404, {'Content-Type': 'text/html'});
        }else{             
           // HTTP 状态码: 200 : OK
           // Content Type: text/html
           res.writeHead(200, {'Content-Type': 'text/html'});    
           
           // 响应文件内容
           res.write(data.toString());        
        }
        //  发送响应数据
        res.end();
     });   
    // res.end('结束访问')
})
server.listen(port,homeName,_=>{
    console.log(`http://${homeName}:${port}`)
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值