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...')
})

一、node.js搭建最简单的服务器相关推荐

  1. Node.js搭建一个简单的服务器

    文章目录 Node.js的安装 了解Node.js模块系统 服务器的搭建 一.创建一个Web服务器 注意 程序代码 运行 二.静态资源托管 静态资源 注意 程序代码 运行 三.简单接口的实现(简单服务 ...

  2. Node.js(一)——(Node.js安装及使用,通过Node.js搭建服务器,模块化及自定义模块,npm/yarn/nvm,内置模块fs的使用,buffer及stream,新闻列表案例)

    目录 1.Node.js介绍 2.安装Node.js 3.使用Node.js实现第一个服务器 3.1初步感受Node.js 3.2Google Chrome 默认非安全端口列表,尽量避免以下端口. 3 ...

  3. node.js搭建简易Web服务器

    node.js搭建简易Web服务器 node.js简介 Node.js 是一个基于V8引擎的JavaScript 运行环境. V8 是为Google Chrome 提供支持的 JavaScript 引 ...

  4. Node.js搭建本地HTTP服务器(微信小程序)

    Node.js搭建本地HTTP服务器(微信小程序) Node.js简易搭建本地HTTP服务器 1. 首先关闭微信开发者工具中的验证 单击工具栏中的详情按钮,选中图中所示选项即可. 2. 将Node.j ...

  5. node 邮箱服务器,Node.js 搭建邮件服务器

    Node.js 搭建邮件服务器 servervar smtp = require('smtp-protocol'); var server = smtp.createServer(function ( ...

  6. Node.js搭建https服务器

    文章目录 前言 一.下载Nginx类型证书 二.打开下载好的文件,将.pem后缀的文件修改为.crt 三.编写Node.js程序 四.把程序上传到云服务器运行 五.启动服务器,进行本地测试 总结 前言 ...

  7. 如何用 Node.js 实现一个简单的 Websocket 服务?

    最近正在研究 Websocket 相关的知识,想着如何能自己实现 Websocket 协议.到网上搜罗了一番资料后用 Node.js 实现该协议,倒也没有想象中那么复杂,除去注释语句和 console ...

  8. 二十七、Node.js搭建第一个Express应用框架

    @Author:Runsen @Date:2020/6/8 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  9. NGINX配置基于Node.js服务的负载均衡服务器

    NGINX配置基于Node.js服务的负载均衡服务器 本部署指南说明了如何使用NGINX开源和NGINX Plus在Node.js应用程序服务器池之间平衡HTTP和HTTPS通信.本指南中的详细说明适 ...

最新文章

  1. MySQL数据库将查询结果插入到其它表中
  2. BDD100K:最经典大规模、多样化的自动驾驶视频数据集
  3. 【奥运代表团加油】ABAP字符处理杂例
  4. MOSS 2007 / WSS 3.0 运行在Windows Server 2008上不能上传大于28M的文件【已解决】
  5. JavaScript中随着鼠标拖拽而移动的块
  6. rabbitmq java教程_GitHub - maxwellyue/rabbitmq-tutorial-java: RabbitMQ官方教程的翻译和说明--Java版...
  7. [转]OpenGL库介绍
  8. JAVAWeb开发之Servlet-18.Servlet共享变量与变量的作用域
  9. 卧槽!华为工程师总结的Java笔记,太优秀了!
  10. win10解压安装mysql缺少MSVCR120.dll文件的问题
  11. C语言:计算班级平均数
  12. 如何把txt文本转换成epub文件
  13. 加州理工计算机与数学科学,美国加州理工学院计算机科学硕士排名专业攻略权威揭秘...
  14. 内存管理基础学习笔记 - 4.3 缺页中断处理 - handle_pte_fault
  15. golang 时间格式转换汇总
  16. 目前市场上主流的BI产品主要有哪些?
  17. 面阵相机行业研究分析报告
  18. 【微信小程序常识】如何发布微信小程序体验版
  19. Win11网络延迟太高怎么办?
  20. 教你如何使用blender+threejs搭建一个3d展厅平台 | 大帅老猿threejs特训

热门文章

  1. pipenv相关指令
  2. 力软 java主从表保存_JAVA常用知识总结(十二)——数据库(二)
  3. linux系统页面缓存,Linux缓存机制之页缓存
  4. matlab 归一化_机器学习中如何用Fscore进行特征选择(附Matlab代码)
  5. java 空接口_学Java,java接口搞明白了吗?大牛让你一文搞清楚
  6. docker-compose下载慢_编写Docker Compose时要注意的五大常见错误
  7. 嵌入式面试中常见的编程题目
  8. 关于毫米波技术的描述
  9. Java-Redis 热部署问题
  10. 记录上一个项目踩过的坑