在命令行使用nodemon app(就是js文件的名字).js 来激活运行本地服务器
//用于创建网站服务器的模块
const http=require('http'); //引入
const app= http.createServer(); //会有返回值,为服务器对象
//当客户端有请求时
app.on('request',(req,res)=>{
console.log('ump45');//这样的方法还是有用的,
//获取请求的地址
console.log(req.url); //请求的.地址
//会返回2个,第一次是请求的/3154,第二次是/favicon.ico(浏览器自动生成的)
//这是一种标识,可以按照这个为客户显示不同的内容!!!
// console.log(req.headers);//获取headers的全部内容
console.log(req.headers['accept']); //引号很是重要
//上面获取了headers的accept的内容(写键的名字就好了)
//不过由于是纯js文件会在命令行显示
if(req.url=='/index'){//这样的写法保证了同一支路只有一个end方法,不会报错
res.end('welcom to index my little buddy~');
}else if(req.method=='POST'){
console.log('也,这是一个POST请求');
res.end('this is a post request');
}else if(req.method=='GET'){
console.log('也,这是一个GET请求');
res.end('this is a get request');
}
//获取请求方式
console.log(req.method);//看出了请求方式是Get
//为啥刷新一下会出现2次ump45和req.method?
//看看开发者network的请求发送,可以看出发送了2的请求
//第二个是ico的请求,是浏览器自动发送的
// res.end('<h2>hi how are U today?</h2>');
//这个得注释掉,看来end只能在一条路线分支中同时存在一个
//结束请求,响应内容
});//request(请求)req为缩写,res为(反应)的缩写
//监听端口后才可以提供服务,接下来就是
app.listen(3000); //端口号
console.log('启动成功\nhttp://localhost:3000/');
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 这几个属性是常用的->
method:指定表单提交的方式(get or post)
action:指定当前表单提交的地址 -->
<form method="POST" action="http://localhost:3000/">
<input type="submit">
</form>
点击以后会自动跳转到页面,
并且在命令行出现app.on('request',(req,res)=>{}的相关函数运行的结果
是ump45 POST ump45 GET
看出了request分别执行了2边
而POST的出现是因为我们在{}中有console.log(req.method);//看出了请求方式
这样的函数
GET的出现是因为跳转是一个GET请求
</body>
</html>