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);
浙公网安备 33010602011771号