http 服务器模块
createServer方法
const http = require('http');//导包
//http模块中的createServer方法用于创建一个服务器
//传入一个参数 为回调函数 createServer会向回调函数传入两个参数
//第一个是请求对象 第二个是响应对象
//createServer方法会有个返回值 返回值就代表这个服务器
const server = http.createServer((request,response) => {
//如果想要返回去的给用户看的有中文 并且不乱码就设置响应头
response.setHeader('Content-Type', 'text/html;charset=utf-8');//setHeader设置响应头 传入两个参数 分别为 响应头名字和值
response.end('hello 是是是');
})
//开启服务器 利用listen方法 需要传入两个参数
//第一个为服务器的端口 比如:8087
//第二个是回调函数
server.listen(8087,() => {
console.log('server opening');
});
//本地访问 就是 127.0.0.1:8087
//通过http 创建服务器返回一个网页
const http = require('http');//导包
const fs = require('fs');//导包
const path = require('path');//导包
//创建服务器
const server = http.createServer((request,response) =>{
//读文件 返回
//拼接读取文件的路径
const fullPath = path.join(__dirname,'web','index.html');//拼接绝对路径
//读取文件内容
fs.readFile(fullPath,'utf-8',(err,data) =>{
if(err == null){
//当为错误信息为null 说明没错
response.end(data);//通过end方法 将读取的内容返回给页面 让用户看到
}
else{
response.end("404");
}
})
})
//开启服务器
server.listen(8848,()=>{
console.log('success');
})
//创建一个静态资源服务器
//就是用户请求那个文件那个资源 就返回那个资源
const fs = require('fs');//导包
const path = require('path');//导包
const http = require('http');//导包
//创建服务器
const server = http.createServer((request,response) =>{
//先确定用户请求的是哪个文件
//通过createServer向回调函数中传入的第一个参数 中可以找到 他里面有个url用于保存用户请求的文件
//读文件 返回
//拼接读取文件的路径
const fullPath = path.join(__dirname,'web',request.url);//拼接绝对路径 最后参数的文件是用户所想要请求的
//读取文件内容
//服务器会有一个嗅探功能 它会根据你所读取的资源后缀名 就知道是什么类型的资源 他就会自动用符合的方式打开 返回
//在读文件不用定义编码集 如果定义编码集可能会出现问题
//比如 定义编码集为utf-8 那么读取图片就一定会出现问题
fs.readFile(fullPath,(err,data) =>{
if(err == null){
//当为错误信息为null 说明没错
response.end(data);//通过end方法 将读取的内容返回给页面 让用户看到
}
else{
response.end(`
404 NOt FOUND
${
request.url}`);
}
})
})
//开启服务器
server.listen(8848,()=>{
console.log('success');
})
端口
http默认的端口是80端口 web服务器用的就是默认端口 所有我们不要用 比如百度 京东 只要是web服务器都是默认端口80
默认的80端口可以省略不写
自己写的服务器端口要用别的没有占用的端口 比如公认端口(0-1023)