详解node.js创建一个web服务器(Server)的详细步骤


Posted in Javascript onJanuary 15, 2021

前言

在 node.js 中创建一个服务器非常简单,只需要使用 node.js 为我们提供的 http 模块及相关 API 即可创建一个麻雀虽小但五脏俱全的web 服务器,相比 Java/Python/Ruby 搭建web服务器的过程简单的很。

http model

要想创建一个基于 node.js 的 web 服务器,你就必须使用 node.js 提供的 http 模块,node.js 中的 http 接口旨在支持传统上难以使用的协议的许多特性, 特别是,大块的、可能块编码的消息,接口永远不会缓冲整个请求或响应,用户能够流式传输数据。

为了支持所有可能的 http 应用程序,node.js 的 http API 都非常底层,也就是说所有底层复杂的问题都被 node.js 解决并封装成模块及相关 API 供我们使用,你只需要遵循 node.js 的简洁语法即可上手使用。

创建服务器

首先,你需要引入 http 模块,然后通过相关 API 实现某些功能,下面是一个麻雀虽小但五脏俱全的 node web服务器。

在创建服务器之前,你有必要大概过一遍这两个 API,或者你回过头来再看也可以。

(1)返回一个新建的 http.Server 实例

http.createServer([options][, requestListener])
  • options:<Object>
  • requestListener: <Function>
  • 返回:<http.Server>

(2)启动 HTTP 服务器监听连接

server.listen(port,callback)
  • port:<Number>
  •  端口号callback:<Function> 回调函数
  • 返回:无

(3)屏幕打印字符串(简单使用chunk)

response.write(chunk[, encoding][, callback])
  • chunk:<String> | <Buffer>
  • encoding:<String> 默认值: ‘utf8'。
  • callback:<Function> 回调
  • 返回:<boolean>

hello.js

// 引入核心模块
var http = require('http')

// 创建服务器(API返回的是一个实例)
var server = http.createServer()

// 绑定端口号(3000)
server.listen(3000, () => {
  console.log(`服务器启动成功,等待客户端请求...`)
})

// 监听客户端发起的请求
server.on('request', (request, response) => {
  
  // 客户端请求路径
  console.log(`客户端请求路径为:${request.url}`)

  // 响应给客户端
  switch(request.url){
    
    case '/': {//浏览器默认行为
      response.write(`/`)
      break;
    }

    case '/index': {//首页
      response.write(`/index`)
      break;
    }

    case '/loging': {//登录页
      response.write(`/loging`)
      break;
    }
    
  }

  // 响应完成
  response.end()
  
})

我们已经完成了 hello.js web服务器编写,现在我们启动服务器:

一、打开cmd终端定位到 hello.js 文件目录中(IDE内置终端也可以)

详解node.js创建一个web服务器(Server)的详细步骤

二、启动 hello.js

// 启动命令
node hello.js

详解node.js创建一个web服务器(Server)的详细步骤

显示关键字[服务器启动成功…]即为开启成功,然后打开浏览器准备测试。

三、输入本机 IP 地址,就像这样一个 URL,端口为自己配置的端口,默认8000

详解node.js创建一个web服务器(Server)的详细步骤

详解node.js创建一个web服务器(Server)的详细步骤

测试请求

详解node.js创建一个web服务器(Server)的详细步骤

注意,就算不写 “/” 浏览器也会默认添加。

详解node.js创建一个web服务器(Server)的详细步骤

详解node.js创建一个web服务器(Server)的详细步骤

到此这篇关于详解node.js创建一个web服务器(Server)的详细步骤的文章就介绍到这了,更多相关node.js创建web服务器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js 函数的副作用分析
Aug 23 Javascript
JQuery实现鼠标滚轮滑动到页面节点
Jul 28 Javascript
javascript性能优化之DOM交互操作实例分析
Dec 12 Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
Jan 04 Javascript
微信小程序本作用域下调用全局JS详解及实例
Feb 22 Javascript
Javascript刷新页面的实例
Sep 23 Javascript
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
详解微信小程序开发聊天室—实时聊天,支持图片预览
May 20 Javascript
VUE渲染后端返回含有script标签的html字符串示例
Oct 28 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
Apr 08 Javascript
Postman如何实现参数化执行及断言处理
Jul 28 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 Javascript
JavaScript中展开运算符及应用的实例代码
Jan 14 #Javascript
js中延迟加载和预加载的具体使用
Jan 14 #Javascript
JS中箭头函数与this的写法和理解
Jan 14 #Javascript
JavaScript this关键字的深入详解
Jan 14 #Javascript
Vue实现多页签组件
Jan 14 #Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 #Vue.js
Vue中引入svg图标的两种方式
Jan 14 #Vue.js
You might like
基于mysql的bbs设计(五)
2006/10/09 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
HTML Dom与Css控制方法
2010/10/25 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
2013/12/06 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
python 将字符串转换成字典dict
2013/03/24 Python
简单介绍Python中的JSON模块
2015/04/08 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
Python中按键来获取指定的值
2019/03/02 Python
深入了解Django中间件及其方法
2019/07/26 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
用python发送微信消息
2020/12/21 Python
就业推荐自我鉴定
2013/10/06 职场文书
HR喜欢的自荐信格式
2013/10/08 职场文书
婚前财产公证书
2014/04/10 职场文书
父母对孩子说的话
2014/04/12 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
2015年校长新年寄语
2014/12/08 职场文书
2014会计年终工作总结
2014/12/20 职场文书
银行先进个人总结
2015/02/15 职场文书
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技