node基础

学习nodejs的意义?
1. 了解浏览器端和服务器端的交互过程 可以缩短开发周期
2. 出现bug 可以快速定位是前端问题还是后端问题
3. nodejs和其它后端语言拥有一样的功能 可以做数据库的增删改善 爬虫 读写文件…
什么是nodejs?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 v8解析js是最快的
nodejs是让js运行在服务器端
nodejs里面的API大多数都是异步

node执行
下载地址
https://nodejs.org/en/
1.打开命令框(CMD)
在这里插入图片描述
表示安装成功
2. 打开终端 输入 node 和文件名 按回车执行
3 退出node环境 使用后ctrl + c (按两次)

导入模块文件
导入模块 require(“模块名”) 模块名是nodejs内部规定死的 不能动
左边保存的变量可以修改 但是通常情况下和模块名保持一致
在这里插入图片描述
读取文件

fs.readFile("./novels/01.txt","utf-8",  (err, data) => {}

参数1 : 需要被读取的文件的路径
参数2 : 可选参数 我们这里给的是编码格式
参数3 : 回调函数 里面有连个参数 err 表示读取失败时返回的信息 data是读取到的文件信息

写入文件

fs.writeFile("./novels/03.txt", "海客谈瀛洲, 波涛微茫新难求, 越人语天姥, 云霞明灭或可睹......", err => {}

参数1 : 存入信息或者数据的文件路径
参数2 : 需要写入的数据
参数3 : 回调函数

nodejs里面 如果有sync结尾的方法都是同步的方法
同步方法用得并不多

服务器模板

// 导入模块
const http = require("http");
// 创建http服务
const server = http.createServer((request, response) => {
}
// 地址可以省略  但是端口号不行  地址不填  默认是127.0.0.1
server.listen("80",  () => {
    console.log("start");
})

路径
nodejs里面的相对路径 是相对于当前运行node命令的终端所处的相对路径
为了保证在任何地方打开终端 都可以运行 那么我们的路径使用绝对路径
问题 : 万一文件夹存在其他地方 绝对路径也不可靠 解决办法 : __dirname
__dirname 是当前文件所在的文件的绝对路径
__filename 是当前文件的绝对路径

暴露接口
nodejs每一个js文件都是一个独立的作用域
在这个作用内部写的一些变量或者方法 外部肯定不到
使用一个固定的语法来暴露出想要外界访问的接口
暴露的接口是固定的 module.exports = {} 里面暴露的是什么 外部就访问到什么
只是在模块的使用上面会起作用 模块导入必须使用require 模块暴露接口 必须使用module.exports

module.exports = {
    age : 12,
    jump() {
        console.log("ppppp");
    },
    name,
    sayHi
}

cookie
cookie是以小的文本文件形式(即纯文本),完全存在于客户端;cookie保存了登录的凭证,有了它,只需要在下次请求时带着cookie发送,就不必再重新输入用户名、密码等重新登录了。
在这里插入图片描述
在这里插入图片描述

设置cookie

  setcookie("password", "888888", time() + 20); 
  time表示当前时间

cookie的删除 :
1. 在浏览器开发者工具里面 删除选中的 或者删除全部
2. 设置过期时间 时间一到 就自动删除
3. 直接删除的话 可以设置一个过期时间

setcookie("password", "123456", time() - 20);

使用的注意点
cookie只能存储字符串 不能存储其他数据类型 否则就会报错
setcookie(“userInfo”, {name : ‘刘德华’}, time() + 20);

http概念
http 超文本传输协议 之串门用来做网页传输的一种协议
请求报文
在这里插入图片描述
请求行 : 指明本次请求的请求方式 请求路径 还有遵循的协议版本

请求头 : 请求头里面的数据 事宜键: 值的额形式存储的

​ host : 接受请求的服务器的地址 可能包括 ip 域名 端口号

​ connection : 指定与连接相关的属性

​ user-Agent : 表示发送请求的应用程序

​ Accept-encoding : 是浏览器告诉服务器 我可以接受的压缩的文件格式

​ Accept-language : 是告诉浏览器 我可以解析的语言
响应报文
在这里插入图片描述

状态行 : 协议版本 状态码 和状态信息

响应头 : 响应时间 服务器连接状态 响应正文的长度 响应体的格式

响应体 : 这是服务器 返回给浏览器的文件 只需要返回不需要解析 留给浏览器自己解析

http状态码
200 响应成功

302 发生跳转

404 找不到页面 (客户端请求有错误)

403 服务器收到了你的请求 但是拒绝访问

500 服务器内部的错误

导入模块数据顺序
模块网站 https://www.npmjs.com/
初始化 npm init -y
导入模块 npm i 模块名
读取模块 var mysql = require(‘mysql’);
一般名字和模块名相同

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值