创建一个简单的http模块
http 模块主要用来搭建 HTTP 服务器,用 Node 搭建 HTTP 服务器简单;
第一步:导入node内置的http模块,并定义一个变量去接收它
const http = require('http')
第二步:设置一个端口号,在我看来就像给我们的模块设置一个身份信息,我们到时候会通过这个端口号来找到它
const port = 3255
第三步:调用 http 模块的 createServer() 方法
,创建一个服务器实例;要传入两个参数
require参数:表示浏览器向服务器请求的内容
response参数:表示服务器向浏览器响应的内容
const server= http.createServer((require,response) => {
console.log("来请求了,请求方式是"+require.method);
console.log("来请求了,请求路径是"+require.url);
之后我们要设置状态码,关于状态码我们要好好说一下:
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。
HTTP 状态码的英文为 HTTP Status Code。。
下面是常见的 HTTP 状态码:
- 200 - 请求成功
- 301 - 资源(网页等)被永久转移到其它URL
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
我们直接把状态码设置为
response.statusCode = 200;
然后设置响应头
response.setHeader('Content-Type', 'text/plain;charset=UTF-8')
最后设置响应体
设置响应体:真正返回给浏览器的内容
response.end('陈子唯')
设置完服务器之后,我们要开启服务器
server.listen(port,()=>{
console.log(`服务器已经运行了 端口号是多少:${port}/`);
})
完整代码如下:
// 导入node内置的http模块
// 定义一个变量
const http = require('http')
// 设置端口号port
const port = 3255
// 调用http模块的creatServe方法
// require参数:表示浏览器向服务器请求的内容
// response参数:表示服务器向浏览器响应的内容
const server= http.createServer((require,response) => {
console.log("来请求了,请求方式是"+require.method);
console.log("来请求了,请求路径是"+require.url);
// 设置响应状态码为200
response.statusCode = 200
// 设置响应头
response.setHeader('Content-Type', 'text/plain;charset=UTF-8')
//设置响应体:真正返回给浏览器的内容
response.end('陈子唯')
})
//开启服务器
server.listen(port,()=>{
console.log(`服务器已经运行了 端口号是多少:${port}/`);
})
用http模块完成一个狗狗管理的小案例,就是【写狗狗管理项目的后端接口】
要求实现的功能:每次刷新页面 都能在页面上随机渲染一条狗狗
第一步:创建一个文件夹 “狗狗接口”
第二步 把之前写的狗狗管理案例的data文件夹和module文件夹复制到接口文件中
然后在于data module平级的地方 新建一个js文件夹
编写代码部分
第一步自然都是导入http模块
const http = require('http')
第二步导入自定义狗狗模块
const dog = require('./module/dog')
第三步创建服务器
const serve = http.createServer((require,response) =>{
// 设置相应状态码
response.statusCode=200
// 设置相应头
response.setHeader('Content-Type','text/plain;charset=UTF-8')
// 根据请求方式以及请求地址设置相应的内容
if(require.method == 'GET'&& require.url == '/randomDog'){
// 调用狗狗管理模块中读取狗狗方法
dog.readDog((data) =>{
// 生成随机下标
const index =Math.floor(Math.random() * data.length)
// 根据随机下标,获取一条随机狗狗,并渲染到页面上
response.end(data[index])
})
}else{
response.end('我是其他页面')
}
})
最后开启服务器
// 开启服务器
serve.listen(8800,()=>{
console.log('服务器已经运行了');
})
但是如果想服务器正常运行还有一个小步骤
我们要把之前引入的自定义狗狗模块传入回调函数才可以方便调用
完整连贯代码
// 导入http模块
const http = require('http')
// 导入自定义狗狗模块
const dog = require('./module/dog')
// 创建服务器
// req:request 请求的参数
// res:response 相应的参数
const serve = http.createServer((require,response) =>{
// 设置相应状态码
response.statusCode=200
// 设置相应头
response.setHeader('Content-Type','text/plain;charset=UTF-8')
// 根据请求方式以及请求地址设置相应的内容
if(require.method == 'GET'&& require.url == '/randomDog'){
// 调用狗狗管理模块中读取狗狗方法
dog.readDog((data) =>{
// 生成随机下标
const index =Math.floor(Math.random() * data.length)
// 根据随机下标,获取一条随机狗狗,并渲染到页面上
response.end(data[index])
})
}else{
response.end('我是其他页面')
}
})
// 开启服务器
serve.listen(8800,()=>{
console.log('服务器已经运行了');
})
运行效果如下
轻映录屏 2022-11-15 10-56-20