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,回车即可
相关推荐
菜鸟xy..4 分钟前
windows server 2008 建立ftp服务器
运维·服务器
Luckyfif1 小时前
Webpack 是什么? 解决了什么问题? 核心流程是什么?
前端·webpack·node.js
爱编程的小金1 小时前
React-query vs. 神秘新工具:前端开发的新较量
前端·javascript·react.js·http·前端javascript
熊的猫3 小时前
如何封装一个可取消的 HTTP 请求?
前端·javascript·vue.js·网络协议·http·webpack·node.js
AI原吾3 小时前
构建灵活、高效的HTTP/1.1应用:探索h11库
网络·python·网络协议·http·ai·h11
傻啦嘿哟3 小时前
Python中的HTTP高手:如何玩转requests模块
开发语言·python·http
看山还是山,看水还是。3 小时前
Nginx 的 Http 模块介绍(中)
android·运维·网络·nginx·http
Tony聊跨境3 小时前
什么是 HTTP 代理?它如何工作?
网络·http·ip
danplus3 小时前
外贸邮件营销群发:如何避免成为垃圾邮件?
服务器·api接口·邮件营销·smtp服务器·邮件接口·营销邮件·域名邮箱
风虎云龙科研服务器4 小时前
GPU 服务器:高性能计算的核心驱动力
运维·服务器