补充上一篇内容:
重点: post参数处理 以及get参数处理
get参数处理===> url模块
url.parse()====>将url字符串转换为 json类型的对象
属性: query ===>存放传输的数据
true值 用来设置 query的格式 为 json格式
url.format(); ====>将json转换为字符串
post 参数处理====>querystring模块
querystring.parse()===>将字符串转换为json对象
querystring.stringify()===>将对象转为字符串
判断请求的方式: req.method===>post,get,delete,put
二 ,搭建Web项目的步骤:
1, 首先创建入口文件 index.js;
2, 搭建模板引擎 package.json;(npm init -y)
3, 引入模板 art-template;(npm install art-template --save)
4, 在入口文件中 添加模板引擎的代码段;
const http=require('http');
const path=require('path');
const fs=require('fs');
// querystring 模块提供用于解析和格式化 URL 查询字符串的实用工具
const querystring=require('querystring');
const scoreData=require('./scores.json');
添加模板引擎的代码段
const template=require('art-template');
http.createServer((req,res)=>{
// 设置路由
// 查询成绩的入口地址 /query
// 获取成绩的结果 /score
if(req.url.startsWith('/query') && req.method=='GET'){
let content=template(path.join(dirname,'views','index.art'),{});
res.end(content);
}else if(req.url.startsWith('/score') && req.method=='POST'){
console.log('======');
// 获取成绩的结果 /score
let pdata='';
// 提交时 获取url信息
req.on('data',(chunk)=>{
// console.log(chunk);
pdata+=chunk;
});
req.on('end',()=>{
// 使用querystring解析url字符串
let obj=querystring.parse(pdata); // 解析为对象
let result=scoreData[obj.code]; // 根据考号取数据
console.log(result);
// 返回内容之前先要进行数据渲染
let content=template(path.join(dirname,'views','result.art'),result);
res.end(content);
});
}else if(req.url.startsWith('/all') && req.method=='GET'){
// 查询全部成绩
let content=template(path.join(__dirname,'views','list.art'),{
list:[
scoreData['no123'],
scoreData['no124'],
scoreData['no125'],
scoreData['no126']
]
})
res.end(content);
}
}).listen(3000,()=>{
console.log('http://localhost:3000');
})