700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > node.js 学习入门(04 - http 模块创建基本的web服务器)

node.js 学习入门(04 - http 模块创建基本的web服务器)

时间:2020-05-30 11:20:34

相关推荐

node.js 学习入门(04 - http 模块创建基本的web服务器)

目录

什么是 web 服务器?使用 http 创建基本的web服务器了解req请求对象解决中文乱码的问题根据不同的url响应不同的html内容web服务器案例

什么是 web 服务器?

当应用程序(客户端)需要某一个资源时,可以向一个台服务器,通过Http请求获取到这个资源;提供资源的这个服务器,就是一个Web服务器;

目前有很多开源的Web服务器:Nginx、Apache(静态)、Apache Tomcat(静态、动态)、Node.js

使用 http 创建基本的web服务器

可以在终端中使用node 地址来运行

// 1. 导入 http 模块const http = require('http')// 2. 创建 web 服务器实例const server = http.createServer()// 3. 为服务器实例绑定 request 事件,监听客户端的请求server.on('request', function (req, res) {console.log("Someone visit our web serve.")})// 4. 启动服务器server.listen(80, function () {// 80 可以省略,其他的不可以console.log("server running ar http://127.0.1:80")})

了解req请求对象

const http = require('http')const server = http.createServer()// req 是请求对象,保护了与客户端相关的数据和属性server.on('request', (req,res) => {// req.url 是客户端请求的 URL 地址const url = req.url// req.method 是客户端请求的 method 类型(get/post)const method = req.methodconst str = `Your request url is ${url}, and request method is ${method}`// console.log(str)// 调用 res.end() 方法,向客户端响应一些内容res.end(str)})server.listen(80, () => {console.log("server running at http://127.0.0.1")})

解决中文乱码的问题

const http = require('http')const server = http.createServer()server.on('request', (req,res) => {// req.url 是客户端请求的 URL 地址const url = req.url// req.method 是客户端请求的 method 类型(get/post)const method = req.method// 定义一个字符串,包含中文的内容const str = `你请求的 url 地址是 ${url},请求的 method 类型是 ${method}`// 为了解决中文显示乱码的问题,需要设置响应头 Content-Type 的值为 text/html; charset=utf-8res.setHeader('Content-Type','text/html; charset=utf-8')// console.log(str)// 调用 res.end() 方法,向客户端响应一些内容res.end(str)})server.listen(80, () => {console.log("server running at http://127.0.0.1")})

根据不同的url响应不同的html内容

const http = require('http')const server = http.createServer()server.on('request',(req, res) => {// 1. 获取请求的 url 地址const url = req.url// 2. 设置默认的响应内容为 404 Not foundlet content = '<h1>404 Not found</h1>'// 3. 判断用户请求的是否为 / 或 /index.html 首页// 4. 判断用户请求的是否为 /about.html 关于页面if (url === '/' || url === '/index.html') {content = '<h1>首页</h1>'} else if(url === '/about.html'){content = '<h1>关于页面</h1>'}// 5. 设置 Content-Type 响应头,防止中文乱码res.setHeader('Content-Type','text/html; charset=utf-8')// 6. 使用 res.end() 把内容响应给客户端res.end(content)})server.listen(80, () => {console.log("server running at http://127.0.0.1")})

web服务器案例

自己找一个 html 文件放在 clock 文件夹下,在5.2步骤处引入

// 1.1 导入 http 模块const http = require('http')// 1.2 导入 fs 模块const fs = require('fs')// 1.3 导入 path 模块const path = require('path')// 2.1 创建 web 服务器const server = http.createServer()// 2.2 监听 web 服务器的 request 事件server.on('request', (req,res) => {// 3.1 获取到客户端请求的 url 地址const url = req.url// 3.2 把请求的 url 地址映射为具体文件的存放路径// const fpath = path.join(__dirname,url)// 5.1 预定义一个空白的文件存放路径let fpath = ''if (url === '/') {// 5.2 如果请求的路径为 /,则手动指定文件的存放路径// 自己找一个 html 文件放在 clock 文件夹下fpath = path.join(__dirname,'./clock/index.html')} else {// 5.3 如果请求的路径不为 /,则动态拼接文件的存放路径fpath = path.join(__dirname,'/wsh',url)}// 4.1 根据”映射“过滤的文件路径读取文件的内容fs.readFile(fpath, "utf8", (err,data) => {// 4.2 读取失败,向客户端响应固定的“错误信息”if (err) return res.end("404 Not found.")// 4.3 设置 Content-Type 响应头,防止中文乱码// res.setHeader('Content-Type','text/html; charset=utf-8')// 4.4 读取成功,将读取成功的内容,响应给客户端res.end(data)})})// 2.3 启动服务器server.listen(80, () => {console.log("server running at http://127.0.0.1")})

以上就是 node.js 中 使用 http 创建基本 web 服务器的功能,不懂得也可以在评论区里问我,以后会持续发布一些新的功能,敬请关注。

我的其他文章:/weixin_62897746?type=blog

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。