详解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 相关文章推荐
JavaScipt基本教程之前言
Jan 16 Javascript
JQuery Easyui Tree的oncheck事件实现代码
May 28 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
Mar 03 Javascript
JS常用表单验证方法总结
May 22 Javascript
JavaScript简单获取页面图片原始尺寸的方法
Jun 21 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
Sep 07 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
Sep 28 Javascript
Node.js系列之安装配置与基本使用(1)
Aug 30 Javascript
vue项目中常见问题及解决方案(推荐)
Oct 21 Javascript
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
javascript实现点击按钮切换轮播图功能
Sep 23 Javascript
js 图片懒加载的实现
Oct 21 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
PHP四大安全策略
2014/03/12 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
使用python3.5仿微软记事本notepad
2016/06/15 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
Python 字符串与数字输出方法
2018/07/16 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
python 自动重连wifi windows的方法
2018/12/18 Python
Python实现简易过滤删除数字的方法小结
2019/01/09 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
印刷工程专业应届生求职信
2013/09/29 职场文书
工艺员岗位职责
2014/02/11 职场文书
葬礼司仪主持词
2014/03/31 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
离婚协议书范文2015
2015/01/26 职场文书
幸福终点站观后感
2015/06/04 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android