初步学习node

学习总结

这周开始了node的学习 但因为还要进行期末的备考 所以只是初步的学习
介绍node
node是一个JS运行环境 JS代码写好之后需要放到浏览器里面去运行,脱离了浏览器是没有办法运行的,现在不仅浏览器能运行JS,Node也能运行Js。
● 正常情况下io操作是堵塞的 用node处理高并发很好
● 网络请求 数据库处理 文件读写
● 防止甩锅 能书写api(接口文档)
● 限制语言环境的不是语言本身 而是语言的运行环境
node读取文件分为同步读取和异步读取
同步
用try catch捕获错误

const fs=require("fs");
// 同步操作 在关键位置捕获错误信息 让程序不崩溃
try{
    // 可能出错的代码
    let dirs=fs.readFileSync("./node02");
}
catch(error){
    console.log("出错了");
    console.log(error);
}
console.log(2222);

异步

// 异步读取
fs.readdir("./",(error,data)=>{
    if(error){
        // error为真是有错误
        console.log(error);
        console.log(error.error);
    }
    else{
        console.log(data);
    }
})
// 错误回调优先 回调函数 第一个参数是表示错误对象 
// 默认值为null

Url对资源库进行统一
parse()将字符串转化为对象
format()将对象转化为字符串

const { parse } = require("path");
const url=require("url");
let urlString="https://www.bilibili.com/video/BV1BE411i7uy/?p=7&spm_id_from=pageDriver&vd_source=3abac4f86f01410855c034333752d506"
let urlObj=url.parse(urlString);
console.log(urlObj);
// parse:将字符串转化为对象
let obj={
    protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'www.bilibili.com',
  port: null,
  hostname: 'www.bilibili.com',
  hash: null,
  search: '?p=7&spm_id_from=pageDriver&vd_source=3abac4f86f01410855c034333752d506',
  query: 'p=7&spm_id_from=pageDriver&vd_source=3abac4f86f01410855c034333752d506',
  pathname: '/video/BV1BE411i7uy/',
  path: '/video/BV1BE411i7uy/?p=7&spm_id_from=pageDriver&vd_source=3abac4f86f01410855c034333752d506',
  href: 'https://www.bilibili.com/video/BV1BE411i7uy/?p=7&spm_id_from=pageDriver&vd_source=3abac4f86f01410855c034333752d506'
}
let string=url.format(obj);
console.log(string);

express书写post和get请求

// 安装express
const express = require("express");
const bodyParse = require("body-parser")
// app.use(使用插件)
const { error } = require("jquery");
const app = express();
// 解析表单的数据
app.use(bodyParse.urlencoded({ extended: false }))
// 解析json
app.use(bodyParse.json());
// 开启了一个node服务器
// 监听3000端口
// req请求 res返回结果
app.get("/user/login",(req,res)=>{
    // 接受get参数 req.query
    console.log(req.query);
    // 处理参数
    let {user,ps}=req.query;
    if(user==="wangziyue"&&ps==456){
        res.send({err:0,msg:'regist ok'})
    }
    else{
        res.send({err:-1,msg:'regist ok'})
    }
})
app.post("/user/regist", (req, res) => {
    // 接受post数据
    // 消息体 请求体
    // req.body
    console.log(req.body);
    let { user, ps } = req.body;
    // body-parse
    if (user == 123 && ps == 234) {
        res.send({ err: 0, msg: 'regist ok' })
    } else {
        res.send({ err: -1, msg: 'regist err' })
    }
})
app.listen(9000, () => {
    console.log("开启服务器");
})

get的数据在req.query
post在req.body 不能被解析 需要下载插件
总结
希望考试能顺利通过 天天开心

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值