一:使用步骤
1 加载http模块,并创建Web服务程序
2 利用Web服务程序监听request事件,设置响应头和响应体
3 配置端口号并启动Web服务
4 浏览器请求设置的端口号,进行Web服务程序测试
二:简单应用
const http = require('http')
// 创建Web服务对象
const server = http.createServer()
// req中包含本次请求的一些参数
server.on('request', (req, res) => {// 设置响应头和响应体//设置响应头内容类型-普通文本以及中文编码格式res.setHeader('Content-Type', 'text/plain;charset=utf-8')// 设置响应体内容,结束本次请求与响应res.end('欢迎使用Node.js和http模块创建Web服务')
})
//设置端口号为3000,来区分不同的Web服务,服务启动成功后调用回调函数
server.listen(3000, () => {console.log('启动成功');
})
在node.js中调用后,会启动计算机进程,持续监听是否有该端口号的请求。倘若要关闭该进程,则利用Ctrl+C操作。停止后,则无法通过浏览器访问到(该例,http://localhost:3000)
三:浏览时钟案例
基于Web服务,开发提供网页资源的功能
1 实现思路
- 基于http模块,创建Web服务
- 监听reques事件,使用req.url获取在浏览器地址栏中的请求的资源路径
- 判断并读取index.html里的字符串内容,并设置响应头和响应体
- 访问的其他路径不存在时,暂时返回不存在提示
- 运行Web服务,在浏览器中测试
const http = require('http')
// const server = require('server')
const server = http.createServer()
const fs = require('fs')
const path = require('path')
server.on('request', (req, res) => {if (req.url === '/index.html') {console.log(__dirname);fs.readFile(path.join(__dirname, 'index.html'), (err, data) => {res.setHeader('Content-Type', 'text/html;charset=utf-8')res.end(data.toString())})} else {res.setHeader('Content-Type', 'text/html;charset=utf-8')res.end('请求资源不在,请另行访问')}
})
server.listen(8080, () => {console.log('启动成功');
})