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,回车即可
相关推荐
19004342 分钟前
linux复习5:C prog
linux·运维·服务器
李迟2 小时前
某Linux发行版本无法使用nodejs程序重命名文件问题的研究
java·linux·服务器
酷酷学!!!2 小时前
Linux基础指令(汇总)
linux·运维·服务器
SchneeDuan3 小时前
建造者模式
运维·服务器·建造者模式
麻花20133 小时前
WPF里面的C1FlexGrid表格控件添加RadioButton单选
java·服务器·前端
哎呦喂-ll3 小时前
Linux进阶:常用操作
linux·运维·服务器
m0_644697334 小时前
DNS域名解析服务器
linux·运维·服务器
Ztiddler5 小时前
【npm设置代理-解决npm网络连接error network失败问题】
前端·后端·npm·node.js·vue
IT枫斗者5 小时前
如何解决Java EasyExcel 导出报内存溢出
java·服务器·开发语言·网络·分布式·物联网
air_7296 小时前
实验四:构建园区网(OSPF 动态路由)
服务器·网络·智能路由器