Node.js之HTTP服务
2021/5/20 12:27:18
本文主要是介绍Node.js之HTTP服务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
使用 Node 非常轻松的构建一个 Web 服务器- 在 Node 中专门提供了一个核心模块:http
- http 这个模块的职责就是帮你创建编写服务器的
- 加载 http 核心模块,http是变量名称,可以自定义
var http = require('http')
- 使用
http.createServer()
方法创建一个 Web 服务器
返回一个 Server 实例
var server = http.createServer()
- 服务器要干嘛?
- 提供服务:对 数据的服务
- 发请求
- 接收请求
- 处理请求
- 给个反馈(发送响应)
- 注册 request 请求事件
当客户端请求过来,就会自动触发服务器的 request
请求事件,然后执行第二个参数:回调处理函数
server.on('request', function () { console.log('收到客户端的请求了') })
- 绑定端口号,启动服务器
server.listen(3000, function () { console.log('服务器启动成功了,可以通过 http://127.0.0.1:3000/ 来进行访问') })
- 执行:
- 访问:
http://127.0.0.1:3000/
每访问一次就会增加一次记录
var http = require('http') var server = http.createServer()
- request 请求事件处理函数,需要接收两个参数:
- Request 请求对象
请求对象可以用来获取客户端的一些请求信息,例如请求路径 - Response 响应对象
响应对象可以用来给客户端发送响应消息
- Request 请求对象
server.on('request', function (request, response) { // http://127.0.0.1:3000/ 结果:/ // http://127.0.0.1:3000/a 结果:/a // http://127.0.0.1:3000/foo/b 结果:/foo/b console.log('收到客户端的请求了,请求路径是:' + request.url) // response 对象有一个方法:write 可以用来给客户端发送响应数据 // write 可以使用多次,但是最后一定要使用 end 来结束响应,否则客户端会一直等待 response.write('hello') response.write(' nodejs') // 告诉客户端,我的话说完了,你可以呈递给用户了 response.end() // 由于现在我们的服务器的能力还非常的弱,无论是什么请求,都只能响应 hello nodejs // 思考: // 我希望当请求不同的路径的时候响应不同的结果 // 例如: // / index // /login 登陆 // /register 注册 // /haha 哈哈哈 }) server.listen(3000, function () { console.log('服务器启动成功了,可以通过 http://127.0.0.1:3000/ 来进行访问') })
- 这里无论请求怎样的路径,返回的结果都是:
hello nodejs
var http = require('http') // 1. 创建 Server var server = http.createServer() // 2. 监听 request 请求事件,设置请求处理函数 server.on('request', function (req, res) { console.log('收到请求了,请求路径是:' + req.url) console.log('请求我的客户端的地址是:', req.socket.remoteAddress, req.socket.remotePort) // res.write('hello') // res.write(' world') // res.end() // 上面的方式比较麻烦,推荐使用更简单的方式,直接 end 的同时发送响应数据 // res.end('hello nodejs') // 根据不同的请求路径发送不同的响应结果 // 1. 获取请求路径 // req.url 获取到的是端口号之后的那一部分路径 // 也就是说所有的 url 都是以 / 开头的 // 2. 判断路径处理响应 var url = req.url if (url === '/') { res.end('index page') } else if (url === '/login') { res.end('login page') } else if (url === '/products') { var products = [{ name: '苹果 X', price: 8888 }, { name: '菠萝 X', price: 5000 }, { name: '小辣椒 X', price: 1999 } ] // 响应内容只能是二进制数据或者字符串 // 数字 // 对象 // 数组 // 布尔值 res.end(JSON.stringify(products)) // 把数组转成字符串 } else { res.end('404 Not Found.') } }) // 3. 绑定端口号,启动服务 server.listen(3000, function () { console.log('服务器启动成功,可以访问了。。。') })
这篇关于Node.js之HTTP服务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-30React Native常用组件-点击组件
- 2024-05-30uniapp+vue3+uv-ui手机端后台OA管理模板
- 2024-05-29Python网络爬虫的时候json=就是让你少写个json.dumps()
- 2024-05-27React Native常用组件-展示组件
- 2024-05-27React Native常用组件-列表组件
- 2024-05-09vue3开发前端表单缓存自定义指令,移动端h5必备插件
- 2024-05-09React Hooks在class组件中的使用方式
- 2024-03-30[OIDC in Action] 2. 基于OIDC(OpenID Connect)的SSO(纯JS客户端)
- 2024-03-29terraform jsonencode
- 2024-03-13vuex-persist