HTTP
创建web服务器
背景
-
在node中专门提供了一个核心模块:http
-
该核心模块专门用于构建服务器
使用
-
加载http核心模块
var http=require('http');
-
使用http.createServer()方法创建一个web服务器,返回一个server实例
var server=http.createServer();
-
服务器用于对数据的服务
-
发请求
-
接受请求
-
处理请求
-
发送响应
收到请求步骤:
扫描二维码关注公众号,回复: 7757604 查看本文章-
注册request 请求事件
-
当客户端请求过来,就会自动触发服务器的request请求事件,然后执行第二个参数进行回调处理
server.on('request',function(){
console.log('收到客户端请求');
});request 请求事件处理函数,可以接受两个参数
-
request 请求对象
可以用来获取一些客户端的请求信息
-
response 响应对象
可以用来给客户端发送响应信息
server.on('request',functon(request,response){
console.log('请求路径是:'+request.url())
})本来访问的本地地址就是: 127.0.0.1:3000,然后就会返回/
这时如果在这个地址后面加上/再加上想要写的文本,就会返回对应的文本
-
其中response对象有一个方法write(),可以用来给客户端发数据
-
write可以使用多次,但是一定要用end来结束否则客户端会一直等待而不输出
server.on('request',functon(request,response){
console.log('请求路径是:'+request.url());
response.write("hello");
response.write("world");
response.end();
})然后helloworld就会在界面上输出
写多行的方式比较麻烦,可以选择直接使用,上面的方式基本不用
response.end('helloworld');
-
-
-
-
启动服务器
-
绑定端口号,启动服务器
server.listen(3000,function(){
console.log('服务器启动成功');
});
-
哪怕使用了request和response后服务器处理能力也很差,
需要实现根据路径的不同返回不同的结果
var http=require('http');
var server=http.createServer();
server.on('request',function(request,response){
console.log("请求路径成功"+request.url);
if(request.url=="/index"){//特别注意!!!
response.write('index ok');
}else if(request.url=="/register"){
response.write('register');
}
response.end();
})
server.listen('3000',function(){
console.log('服务器启动成功')
})
需要特别注意的是哪怕没有写任何路径,即连/也没有,但是url里面还是会包括/,所以比较路径的时候一定要记得写进去
request的响应内容只能是二进制数据或者是布尔值,其他都不行