首页 > 编程语言 >node-day02

node-day02

时间:2022-08-24 20:37:49浏览次数:67  
标签:node npm fs day02 req let 模块 res

一、加载静态资源(所有静态资源必须要在服务器响应才能看到)

1.什么是静态资源 例如 html css js 图片

2.如何加载?

​ 需要引入文件系统模块fs,使用fs中的readFile方法

引入fs模块

let fs = require('fs')

语法格式: fs.readFile(参数1,参数2)

​ 参数1: 要加载的静态资源

​ 参数2:回调函数

例如:
fs.readFile('/index.html',(参数1,参数2)=>{
  参数1: 错误 err
  参数2: 记载成功的静态资源  data
})
//根据不同的路径加载不同的静态资源

let http = require('http');
//引入fs模块
let fs = require('fs');
let server = http.createServer((req,res)=>{
    //根据不同的路径加载不同的静态资源
    let url = req.url
    if(url == '/index'&& req.method == 'GET'){
       fs.readFile('./index.html',(err,data)=>{
       if(err){
           //能进入这个分支表示有错误
          res.wtite('404');
          res.end();
       }else{
          //能进入这个分支表示没有错误,将加载的数据返回给客户端
           res.write(data);
           res.end();
       }
       })
    }
    if(url == '/login'&& req.method == 'GET'){
       fs.readFile('./login.html',(err,data)=>{
       if(err){
           //能进入这个分支表示有错误
          res.wtite('404');
          res.end();
       }else{
          //能进入这个分支表示没有错误,将加载的数据返回给客户端
           res.write(data);
           res.end();
       }
       })
    }
})
server.listen(8090);

二、处理表单的提交

let http = require("http");
let fs = require("fs");
let urll = require("url"); 
let qs = require("querystringify");
let server = http.createServer((req,res)=>{
    /*
      使用文件系统进行加载html的静态资源(login.html)
      在html文件中有表单
      当表单提交之后,在指定的请求路径中获取表单中传递的信息
    */
   //加载表单的静态资源(也就是加载一个html页面,里边写的是表单代码)
   let url = req.url;
   if(url == "/form" && req.method == "GET"){
     fs.readFile("./form.html",(err,data)=>{
       if(err){
         res.write("404");
       }else{
         res.write(data);
       }
       res.end();
     })
   }

   //处理表单的提交
   if(url == "/dologin" && req.method == "POST"){
    //  console.log("你点击了登录按钮");
    //接收你表单提交过来的信息  用户名 和  密码
    //  如果需要接收表单的信息,我们需要使用一种监听的手段,监听表单中的数据
    /*
        req.addListener(data,function(){})
        参数1:是data  如果参数为data那么就表示开始监听
        参数2:是回调函数

    */
     //声明一个空变量,用于存储每一次监听到的数据
     let datas = "";
     req.addListener("data",(chunk)=>{
        datas += chunk;
     })
     req.addListener("end",()=>{
       //  username=root&pass=123456  =>  {xxx:xxx,xxx:xxx}
       //  let par = urll.parse(url,true);  // 错误的写法!!!
       //  http://localhost:8090/dologin
      
       console.log(datas);
       let obj = qs.parse(datas);
       console.log(obj);
       let username = obj.username;
       let pass = obj.pass;
      //  let pass = xxx;
       console.log(username,pass);
     })
     res.end();
   }
})
server.listen(8090);

三、查询字符串

          查询字符串就是:xxx=xxx&xx=xx
          如果需要解析指定的"查询字符串" 需要解析查询字符串(就是将查询字符串变成对象的过程)
          需要一个模块qs(querystring)模块,我们需要使用这个模块中的parse方法
          qs.parse(参数)  参数就是你要解析的查询字符串

          但是有问题!!qs模块已经被弃用
          解决方案:
            1.删除这个警告
                鼠标悬停到qs模块上,会出现提示,点击那个被标注的连接  不推荐!!
            2.换一个模块
              我们需要使用querystringify的模块
              直接使用会报错,说这个模块没有找到,这个模块不是内置的,我们需要安装
              npm 的使用
                npm是安装模块和依赖的工具
                1.安装模块:
                  在使用安装命令之前,需要先进行对npm初始化
                  npm init --yes  这个命令就是初始化npm
                  初始化之后会在当前的目录中生成一个package.json的文件  非常重要的文件(以后会详细介绍)
                  npm install 模块名
                  可以简写为
                  npm i 模块名
                  默然使用这种方式安装的模块一定是最新的版本
                  按照版本安装
                  npm i 模块名@版本号  例如  npm i [email protected]
                  如果你安装指定版本的时候,不清楚有哪个版本,可以直接 npm i 模块名@1
                  安装模块之后,会生成一个node_modules的目录,所有安装的模块都会在这个里边
              npm是一个强大的模块安装工具:
                npm可以解决依赖安装
                什么是依赖安装:
                  Aok   ->   B ok   ->   C ok   ->   D ok
                npm  安装  A -> 

              2.卸载模块
                npm uninstall 模块名

            切换下载源:
              npm config set registry https://registry.npm.taobao.org
            查看是否切换成功:
              npm config get registry

            npm的官方网站:https://www.npmjs.com/

标签:node,npm,fs,day02,req,let,模块,res
From: https://www.cnblogs.com/chestnut-wm/p/16621430.html

相关文章

  • 删除并安装node 指定版本
    一。卸载1.先卸载npm   sudo npm uninstall npm -g2.卸载node  yumremovenodejsnpm-y3.删除残留  进入/usr/local/lib删除所有node和no......
  • Docker部署Node应用简单实践
    简介: 本文将从零至一,介绍如何在云服务器上通过Docker容器运行一个简单的Node应用。前言本文将从零至一,介绍如何在云服务器上通过Docker容器运行一个简单的Node应......
  • 前端编译报Error: Cannot find module 'node-sass'
    解决办法:1.在项目目录cmd下运行:npm install -g cnpm --registry=https://registry.npm.taobao.org2.下载成功后再运行:cnpm install node-sass3、两个都下载成......
  • Vue项目跑不起来 Uncaught SyntaxError: The requested module '/node_modules/.vit
    一:问题介绍vue项目运行跑不起来提示Browserslist:caniuse-liteisoutdated.Pleaserunnpxbrowserslist@latest--update-db遇到这个情况首先想到重新安装依赖重启项目......
  • node的3个核心模块
    fs读取文件path将路径合并 constfs=require('fs')constpath=require('path')fs.readFile('test.txt',(err,data)=>{ if(err){  console.log(err......
  • node-day01
    一、服务端与客户端的关系客户端指的就是我们之前学习的前端搭建页面请求接口前端的特点在于不操作数据库,但是后端是可以的后端把查阅的数据写成了端口我们前端去调用......
  • [Node.js] mongoose schema
    Example1:importmongoosefrom'mongoose'constitemSchema=newmongoose.Schema({name:{type:String,required:true,trim:true,......
  • node的模块化导入导出
    node的模块化语法:通过module.exports导出模块,require引入模块module.exports=addletadd=require('./add') ES5的模块化语法: import引入外部模块export暴......
  • Vue3+Vite+Vant报错Uncaught SyntaxError: The requested module '/node_modules/.vit
    原因在开发过程中Vue3的依赖版本有变更,直接使用的npminstall下载新的版本,会导致node_modules下存在旧版本的缓存,从而影响了本地项目的启动编译。解决方案删除项目的......
  • node与node-sass对应版本
    (122条消息)三、第一个ElementUI登录页_PkyShare的博客-CSDN博客(122条消息)Modulebuildfailed:TypeError:this.getOptionsisnotafunction报错解决方案_YOGi......