Node.js初学者指南:搭建HTTP服务器、获取请求信息及响应、变量声明与NPM包管理

精神畅快,心气平和;饮食有节,寒暖当心;起居以时,劳逸均匀

文章目录

node.js
  • 概念
    • node.js是一个基于Chrome v8引擎的Javascript运行环境
      • 浏览器是javascript的前端运行环境
      • node.js是javascript的后端运行环境
      • node.js中无法调用DOM和BOM等浏览器内置API
  • 作用
  • 使用
    • 使用快捷键window + R打开运行面板,输入cmd后直接回车,即可打开终端
    • 打开终端,在终端输入命令node-v后,按下回车键,即可查看已安装的node.js的版本号
    • 使用 ↑ 键,可以快速定位到上一次执行的命令
    • 使用tab键,能够快速补全路径
    • 使用esc键,能够快速清空当前已输入的命令
    • 输入cls命令,可以清空终端
  • fs文件系模块
    • 如果要在javascript代码中使用fs模块来操作文件,则需要使用如下方式先导入他
      • const fs = require('fs')
      • fs.readFile() 用来读取指定文件中的内容
      • fs.writeFile() 用来指定的文件中写入内容
      • fs.readdir() 用来读取指定目录下所有文件的名称
    • http模块:用来创建web服务器客户端 的模块
      • 如果要在javascriptjavascript代码中使用http模块,则需要先导入他
        • const http = require('http')
        • http.createServer() 用来创建一个web服务器,从而对外提供web资源
        • http.request() 用来发起http网络请求,请求其它web服务器上的资源
使用http搭建服务器的问题
  • 如果代码更改了,则需要重新启动服务器,代码才会生效
    • ctrl + c,先终止服务
    • 再次执行node xxx.js重新启动服务器即可
  • vscode终端使用的问题
获取请求相关的信息
javascript 复制代码
server.on('request', function (req) {
    // req是一个对象,表示请求相关的信息,是根据http.IncomingMessage类得来的
    // req.method : 请求的方式 GET或POST
    // req.url:请求的url
    // req.headers:请求头
    console.log('请求方式是: ' + req.method + ',请求的url是:' + req.url)
    // console.log('请求已收到')
})
得到请求相关的信息之后,方便服务器做出判断
响应相关的信息
javascript 复制代码
server.on('request', function (req, res) {
    // 所有和请求相关的信息,都是通过req(request:请求)对象获取的
    // 所有和相应相关的信息,都通过res(response:响应)来完成
    // console.log(res instanceof http.ServerResponse)
    // res.end();  用于做出响应
    // res.setHeader(name,value) 设置响应头
    // res.statusCode  设置响应状态码
    // res.writeHead(状态码,{响应头})

    // 告诉浏览器,响应的数据是什么类型,什么编码
    // res.setHeader('Content-Type', 'text/html;charset=utf-8')
    res.writeHead(200, {
        'Content-Type': 'text/html;charset=utf-8',
        'Author':'tiantian',  // 值不能用中文
    })
    res.end('hello,浏览器,你的请求我收到了,这是给你的回应')
})
var、let、const对比
  • let是声明变量的,如果一个值允许他变化,则使用let
  • 如果不希望一个标识的值呗改变,则使用const
初始值 更改值 重新声明 变量提升 块级作用域 window调用
var 可有可无 ×
let 可有可无 × × ×
const 必须有 × × × ×
npm使用
  • npm这个工具,在安装node的时候,就已经安装到计算机了
  • 命令行中执行 npm -v,如果看到版本号,说明安装成功
  • 作用:管理node模块的工具
  • 初始化 (在使用npm工具之前,必须先初始化)
    • npm init -y
    • npm init
  • 安装 (下载安装第三方模块)
    • `npm install``
    • npm i 模块名
  • 更改镜像源
    • 查看镜像源 (下载包的地址) npm config getregistry
    • 全局更改镜像源 npm config setregistry
  • 下载的项目模块只能在当前项目文件夹及其后代文件夹中使用
全局安装包
  • 全局安装的模块,不能通过require()加载使用
  • 安装一个全局模块,名字叫nodemon
    • npm i nodemon -g
  • nodemon作用:代替node命令,启动服务的,当更改代码之后,nodemon会自动帮我们重启服务
    • 运行nodemon,如果报错如下
      • 解决办法是
        • 管理员方式,打开命令行窗口
        • 执行 set-ExecutionPolicyRemoteSigned
        • 在出现的选项中,输入A,回车即可
相关推荐
TFATS7 小时前
Nvidia H100 算力服务器 Cuda Fabric Manager 升级
服务器·postgresql·fabric
xiliuhu7 小时前
Node.js 的事件循环机制
node.js
大柏怎么被偷了7 小时前
【Linux】重定向与应用缓冲区
linux·服务器·算法
金海境科技7 小时前
【服务器数据恢复】数据中心私有云Ceph分布式集群文件丢失数据恢复案例
服务器·经验分享·分布式·ceph
dodod20127 小时前
Ubuntu24.04.3执行sudo apt install yarnpkg 命令失败的原因
java·服务器·前端
刘一说7 小时前
GeoServer:开源GIS服务器的技术深度解析与OGC标准实践
运维·服务器·开源
YY&DS7 小时前
《Qt 手写 HTTP 登录服务实战》
开发语言·qt·http
Promise4857 小时前
关于使用wsl实现linux移植(imux6ull)的网络问题
linux·服务器·网络
郝学胜-神的一滴7 小时前
Linux线程的共享资源与非共享资源详解
linux·服务器·开发语言·c++·程序人生·设计模式
郝学胜-神的一滴7 小时前
Linux进程与线程的区别:从内存三级映射角度深入解析
linux·服务器·c++·程序人生