一、node.js搭建最简单的服务器

node.js搭建最简单的服务器

代码演示:

// 1. 加载http核心模块
var http = require('http')// 2. 使用http.createServer()方法创建一个Web服务器
// 返回一个Server实例
var server = http.createServer()// 3. 服务器干嘛?
// 提供服务: 对数据的服务
// 发请求
// 接受请求
// 处理请求
// 给个反馈(发送响应)// 注册request请求事件,当客户端请求过来,就会自动触发服务器
// 的request事件,然后执行第二个参数:回调处理函数
server.on('request', function() {console.log('收到客户端的请求了')
})// 4. 绑定端口号,启动服务器
server.listen(3000, function() {console.log('服务器启动成功,可以通过 http://127.0.0.1:3000/ 来进行访问')
})

在这里插入图片描述

在这里插入图片描述

2. 加上request参数

var http = require('http')var server = http.createServer()// request请求事件处理函数,需要接受两个参数:
// 		Request 请求对象
// 					请求对象可以用来获取客户端的一些请求信息,例如请求路径
// 		Response 响应对象
// 					响应对象可以用来给客户端发送响应消息
server.on('request', function(request,response) {console.log('收到客户端的请求了,请求路径是:' + request.url)
})server.listen(3000, function() {console.log('服务器启动成功,可以通过 http://127.0.0.1:3000/ 来进行访问')
})

在这里插入图片描述
在这里插入图片描述

3. 加上response

var http = require('http')var server = http.createServer()// request请求事件处理函数,需要接受两个参数:
// 		Request 请求对象
// 					请求对象可以用来获取客户端的一些请求信息,例如请求路径
// 		Response 响应对象
// 					响应对象可以用来给客户端发送响应消息
server.on('request', function(request,response) {console.log('收到客户端的请求了,请求路径是:' + request.url)// response 对象有一个方法: write可以用来给客户端发送响应数据// write 可以使用多次,但是最后一定要使用end来结束响应,否则客户端会一直等待response.write('hello')response.write('nodejs')// 告诉客户端,我的话说完了,你可以呈递给用户了response.end()
})server.listen(3000, function() {console.log('服务器启动成功,可以通过 http://127.0.0.1:3000/ 来进行访问')
})

在这里插入图片描述

4.根据不同的请求路径响应不同的数据

var http = require('http')var server = http.createServer()// request请求事件处理函数,需要接受两个参数:
// 		Request 请求对象
// 					请求对象可以用来获取客户端的一些请求信息,例如请求路径
// 		Response 响应对象
// 					响应对象可以用来给客户端发送响应消息
server.on('request', function(request,response) {console.log('收到客户端的请求了,请求路径是:' + request.url)// response 对象有一个方法: write可以用来给客户端发送响应数据// write 可以使用多次,但是最后一定要使用end来结束响应,否则客户端会一直等待/* response.write('hello')response.write('nodejs') */// 告诉客户端,我的话说完了,你可以呈递给用户了/* response.end() */// 思考:我希望当请求不同的路径的时候响应不同的结果if (request.url == '/hello') {response.write('hello')response.end()} else if (request.url == '/node') {response.write('node')response.end()} else {response.write('/index')response.end()}})server.listen(3000, function() {console.log('服务器启动成功,可以通过 http://127.0.0.1:3000/ 来进行访问')
})

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 模块导入导出

在这里插入图片描述

6. 端口号

var http = require('http')var server = http.createServer()// request请求事件处理函数,需要接受两个参数:
// 		Request 请求对象
// 					请求对象可以用来获取客户端的一些请求信息,例如请求路径
// 		Response 响应对象
// 					响应对象可以用来给客户端发送响应消息
server.on('request', function(request,response) {console.log('收到客户端的请求了,请求路径是:' + request.url)response.setHeader("Content-type","text/html;  charset=utf-8")console.log('请求我的客户端的地址是', request.socket.remoteAddress , request.socket.remotePort)// response 对象有一个方法: write可以用来给客户端发送响应数据// write 可以使用多次,但是最后一定要使用end来结束响应,否则客户端会一直等待/* response.write('hello')response.write('nodejs') */// 告诉客户端,我的话说完了,你可以呈递给用户了/* response.end() */// 思考:我希望当请求不同的路径的时候响应不同的结果if (request.url == '/hello') {response.write('hello')response.end()} else if (request.url == '/products') {var products = [{name: '苹果X',price: 8888},{name: '小辣椒',price: 1999},{name: '菠萝X',price: 5000}]// 响应内容只能是二进制数据或者字符串response.end(JSON.stringify(products))} else {response.write('/index')response.end()}	
})server.listen(3000, function() {console.log('服务器启动成功,可以通过 http://127.0.0.1:3000/ 来进行访问')
})

在这里插入图片描述

7. 读取服务器本地的文本文件和图片

var http = require('http')var fs = require('fs')var server = http.createServer()server.on('request', function(request, response) {// /index.htmlvar url = request.urlif(url === '/') {// res.end('<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><h1>首页</h1></body></html>')// 我们要发送的还是在文件中的内容fs.readFile('./resources/index.html', function(err, data) {if(err) {response.setHeader('Content-Type', 'text/plain;charset=utf-8')response.end('文件读取失败,请稍后重试!')} else {// data默认是二进制数据,可以通过 .toString转换成我们能识别的字符串// response.end()支持两种数据类型,一种是二进制,一种是字符串response.setHeader('Content-Type', 'text/html;charset=utf-8')response.end(data)}})} else if (url === '/p1.jpg') {fs.readFile('./resources/p1.jpg', function(err, data){if(err) {response.setHeader('Content-Type', 'text/plain;charset=utf-8')response.end('文件读取失败,请稍后重试!')} else {response.setHeader('Content-Type', 'image/jpeg')response.end(data)}})}})server.listen(3000, function() {console.log('Server is running...')
})

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDD 领域驱动设计-如何 DDD?

注&#xff1a;科比今天要退役了&#xff0c;我是 60 亿分之一&#xff0c;满腹怀念&#xff5e;??? 前几天看了园友的一篇文章《我眼中的领域驱动设计》&#xff0c;文中有段话直击痛点&#xff1a;有人误认为项目架构中加入 Repository&#xff0c;Domain&#xff0c;Valu…

二、搭建Apache服务器 模板引擎

1. 案例&#xff1a;搭建简单的Apache服务器 var http require(http) var fs require(fs)var server http.createServer()var wwwDir D:\\CWork\\node.js黑马程序员\\study_nodejs\\day02\\code\\wwwserver.on(request, function(req, res) {var url req.urlfs.readFile(…

三、案例:留言板 url.parse()

1. url.parse()的使用 2. 留言板案例 index.html: <!DOCTYPE html> <!-- saved from url(0027)http://192.168.150.76:3000/ --> <html lang"en"><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8…

一、AJAX学习笔记——原生AJAX (ajax简介、XML简介、ajax优缺点、ajax的使用)

第 1 章&#xff1a;原生 AJAX 1.1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML&#xff0c;就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求&#xff0c; 最大的优势&#xff1a;无刷新获取数据。 AJAX 不是新的编程语言&#xff0c;而是…

App安全之网络传输安全

移动端App安全如果按CS结构来划分的话&#xff0c;主要涉及客户端本身数据安全&#xff0c;Client到Server网络传输的安全&#xff0c;客户端本身安全又包括代码安全和数据存储安全。所以当我们谈论App安全问题的时候一般来说在以下三类范畴当中。 App代码安全&#xff0c;包括…

二、nodemon-Node.js 监控工具

nodemon-Node.js 监控工具 https://www.npmjs.com/package/nodemon 这个工具在我们改变了服务端代码时&#xff0c;会自动重启服务器&#xff0c;不需要我们再手动去重启服务器了&#xff0c;方面我们后面调试代码&#xff01; 1. 安装 node &#xff1a;http://nodejs.cn/d…

利用动态规划(DP)解决 Coin Change 问题

问题来源 这是Hackerrank上的一个比较有意思的问题&#xff0c;详见下面的链接&#xff1a; https://www.hackerrank.com/challenges/ctci-coin-change 问题简述 给定m个不同面额的硬币&#xff0c;C{c0, c1, c2…cm-1}&#xff0c;找到共有几种不同的组合可以使得数额为n的…

jquery datatable设置垂直滚动后,表头(th)错位问题

jquery datatable设置垂直滚动后&#xff0c;表头(th)错位问题 问题描述&#xff1a; 我在datatable里设置&#xff1a;”scrollY”: ‘300px’,垂直滚动属性后&#xff0c;表头的宽度就会错位&#xff0c;代码如下&#xff1a; <!-- HTML代码 --> <table id"dem…

三、解决ie缓存问题

解决 IE 缓存问题 问题&#xff1a;在一些浏览器中(IE),由于缓存机制的存在&#xff0c;ajax 只会发送的第一次请求&#xff0c;剩余多次请求不会在发送给浏览器而是直接加载缓存中的数据。 在谷歌浏览器中&#xff0c;修改了服务器代码&#xff0c;重新发送请求时&#xff0…

imageNamed和imageWithContentsOfFile-无法加载图片的问题

问题描述 图片资源放在Assets.xcassets中&#xff0c;分别用UIImage的类方法imageNamed和imageWithContentsOfFile获取图片对象&#xff0c;但发生奇怪的情况&#xff0c;前者获取到图片对象&#xff0c;后者结果为nil。代码如下&#xff1a; 1.通过UIImage的类方法imageNamed:…

LeetCode 309: 一个很清晰的DP解题思路

问题来源 题目来源链接见下方&#xff1a; https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/description/ 问题简述&#xff1a; 假如有一个 i 个元素的数组&#xff0c;数组的每个元素表示了第 i 天某只股票的价格&#xff0c;设计一种算法来…

五、手动取消ajax请求 解决重复发送请求问题

server.js: // 1. 引入express const express require(express)// 2. 创建应用对象 const app express()// 3. 创建路由规则 app.get(/server, (request, response) > {// 设置响应头 设置允许跨域response.setHeader(Access-Control-Allow-Origin, *)// 设置响应体respo…

linux ps命令详解

ps命令用于监测进程的工作情况。进程是正在运行的程序&#xff0c;一直处于动态变化中&#xff0c;而ps命令所显示的进程工作状态时瞬间的。 使用方式&#xff1a;ps[options][-help] 常用参数&#xff1a; -A &#xff1a;显示所有进程 -a&#xff1a;显示一个终端的所有进程。…

用多元线性回归预测网页访问量(R语言)

前言 该问题来源于《机器学习:实用案例解析》中的第5章。在书中&#xff0c;已经对该问题给出了一种解决方案&#xff0c;但是我觉得写的还是太简略了一些&#xff0c;没有把考虑问题的整个思路给写出来&#xff0c;所以&#xff0c;在这里给出我的一些想法。 问题简述 我们…

六、jQuery 中的 AJAX 跨域问题

第 2 章&#xff1a;jQuery 中的 AJAX 官方中文文档&#xff1a;https://jquery.cuishifeng.cn/jQuery.Ajax.html 2.1 get 请求 $.get(url, [data], [callback], [type]) url:请求的 URL 地址。data:请求携带的参数。callback:载入成功时回调函数。type:设置返回内容格式&a…

常用的几种编程语言的介绍

编程语言&#xff08;programming language&#xff09;&#xff0c;来自百度百科的解释为&#xff1a;编程语言是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧&#xff0c;用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据&a…

三门问题(Monty Hall problem)背后的贝叶斯理论

文章目录1 前言2 问题简介3 直观的解释4 贝叶斯理论的解释1 前言 三门问题可以说有着各种版本的解释&#xff0c;但我看了几个版本&#xff0c;觉得没有把其中的条件说清楚&#xff0c;所以还是决定按照自己的理解记录一下这个特别有意思的问题。 2 问题简介 三门问题&#…

一、在vue项目中使用mock.js(详解)

步骤1.搭建测试项目 步骤1.1创建项目 命令&#xff1a; vue create mock-demo 步骤1.2安装依赖 命令&#xff1a; #使用axios发送ajax cnpm install axios--save #使用mockjs产生随机数据 cnpm install mockjs--save-dev #使用json5解决ison文件&#xff0c;无法添加注释…

二、在jQuery中使用mockjs

在jQuery项目中使用mock.js 步骤1.搭建项目 步骤1.1创建项目 新建文件夹jquery-mock-demo 步骤1.2新建index.html&#xff0c;引入jquery.js文件和mock.js <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title&g…