nodeJS——HTTP服务器处理请求

HTTP服务器

http服务器的创建流程

	//引入模块
      var http = require('http');
    // 创建服务
     http.createServer(function(req, res) {
   		 //响应头
    	res.writeHead(200,{
    		'Content-Type':'text/html;charset=utf-8',  //解决中文乱码问题
   			 'Access-Content-Allow-Origin':'*'		//解决跨域
		});
    	//响应内容
    	res.write('<h1>Node.js</h1>');
    	//结束响应
    	res.end('<p>will will be well </p> '); 
    	//监听端口
    }).listen(3000); 
    console.log('http server is listening at port 3000');

常规处理客户端请求

处理fetch()发送的get请求

//获取get请求的url参数
let str = req.url;
//根据请求参数对数据,响应请求
//例如返回id = 2的用户的个人信息
let obj = {
	username:"zhang3",
	pwd:"123456",
	tel:"1233435456",
	email:"123@a.com"
}
res.write(JSON.stringfy(obj));
res.end(); //服务器响应j结束

注意:get请求方式获取的url有时候可能是中文的,这个时候需要使用var str = encodeURI(url)对url进行转码。

处理post请求

//接收post请求发送的参数
let msg = "";
req.on("data",chuck=>{
	msg += chuck; //将接收到数据片段连接起来
}
req.on("end",()=>{
	//end表示数据传送结束,测试的msg就是客户端post请求发送到服务器的数据
	console.log(msg);
}
//根据接收到的数据响应
res.end(msg);//结束服务器响应,将数据发送到客户端

使用express处理客户端请求

Express是Node.js的一个快速开发框架,非常适合搭配Node使用。首先,需要使用淘宝镜像cnpm命令来安装Express.
Express安装命令:

cnpm install express-generator -g

安装成功以后就可以开始使用了。首先创建一个工作目录,并进入这个目录,创建package.json文件

mkdir myapp
cd myapp
npm init

package.json文件中包含了这个项目工程所需要的依赖包。创建好package.json后,将Express添加到依赖列表中.

npm install express --save

做好以上工作之后,就可以开始使用express来处理服务器请求了。
Express处理服务器get请求

//第一步导入express
var express = require("express");
var app = express();

解决浏览器跨域问题
app.use((req,res,next)=>{
    res.header('Access-Control-Allow-Origin','*');
    res.header('Access-Control-Allow-Headers','Content-Type');
    res.header('Access-Control-Allow-Methods','*');
    res.header('Content-Type','application/json;charset=utf-8');
    next();
});

//第二步,根据用户发送的请求方法method和请求路径url,做出响应
app.get("/",(req,res)=>{
	let data = req.query; //获取get请求参数
	//第三步 根据要求获取到响应的数据对象
	//第四步 将响应数据发送给页面
	res.send(Object);
});

Express处理POST请求

//express 如果要获取body中的值,需要导入bodyParser
let bodyParser = require("body-parser");
//解析x-www-form-url...头部信息(headers)
app.use(bodyParser.urlencoded({extended:false}));

app.post("/",(req,res)=>{
	let data = req.body;
	//根据数据做出响应
	//提交响应数据到客户端
	res.send(Object);
})

express快速生成目录

express --view=pug 文件夹名(工程名)

回车后,会产生下面的目录
在这里插入图片描述

  • bin目录:服务器的启动目录,里面包含了一个启动文件www,默认监听的端口是3000.
  • node_modules:这里面安装了所有的依赖模块 public:前端页面的静态资源 html css image js
  • routes:路由文件(默认有两个index和users),主要用来接收前端发送的请求,响应数据给前端。所以我们的服务器处理主要就是在这个目录下完成。
  • views:主要放置e.js后端模板文件
  • app.js:入口文件,分配其他子路由
  • package.json:包描述文件

使用快速生成目录来处理服务器请求,主要在routes目录下完成,index.js代表的是根目录。如果添加了新的.js文件,就需要去app.js文件中配置路由。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值