node.js中响应其他静态资源及接收表单信息

html以外的静态资源文件(img,css,js...)

let http=require('http');
let fs=require('fs');
let server=http.createServer((req,res)=>{
    let url=req.url;
    let method=req.method;
    
    //判断是否是当前的html静态资源文件
    if(url=='/index'&&method=='GET'){
        fs.readFile('./index.html',(err,data)=>{
            if(err){
                res.write('404 not found');
            }else{
                rse.write(data);
            }
            res.end();
        })
    }else{
        //如果不是当前html文件,该文件可以以=  '.'+url的形式读取
        let static='.'+url;
        fs.readFile(static,(err,data)=>{
            if(err){
                res.write('404 not found');
            }else{
                res.write(data);
            }
            res.end();
        })
    }
})
server.listen(8090);

接收表单提交的信息

[^之前提到过: 只有表单中才有可能是post或get请求方式,要注意的是,需要在表单提交之后判断提交方式]:

let http=require('http');
let fs=require('fs');
//引入查询字符串
let qs=require('querystring');
let server=http.createServer((req,res)=>{
    //如何接收表单信息
    
    let url=req.url;
    let method=req.method;
    //此时不需要判断表单提交方式,因为表单还没有提交,仅是响应表单界面
    if(url=='/form'&&method=='GET'){
        if(err){
            res.write('404')
        }else{
            res.write(data)
        }
        res.end();
    }
    
    //加载完页面后,会有提交按钮,输入内容后,可以点击提交按钮,就可以判断提交路径了,此时如果表单设置为post,可以判断是为POST类型
    if(url=='dologin'&&method=='POST'){
        //定义一个变量接收表单输入的不同信息
        let datas='';
        
        //接收表单信息,将所有输入的表单信息都存在datas中
        req.addListener('data',chunk=>{
            datas+=chunk;
        })
        
        //返回监听结果
        req.addListener('end',()=>{
            console.log(datas);	//username=admin&pass=123123
            //输出的类型为: 查询字符串
            //解析查询字符串=> 就是把查询字符串转换成对象格式,方便取数据
            /*
            	引入querystring模块,其中有一个parse()方法
            	格式: qs.parse(要解析的查询字符串)
            */
            let objdata=qs.parse(datas);
            //此时objdata就是对象格式的结果了,可以取其中的数据
            let username=objdata.username;
            let pass=objdata.pass;
            //此时输出的就只有输入的内容了	admin 123123
            console.log(username,pass);
            res.end()
        })
    }
})
server.listen(8090);
posted @ 2022-07-18 19:24  又又儿  阅读(44)  评论(0)    收藏  举报