详解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 相关文章推荐
详细介绍8款超实用JavaScript框架
Oct 25 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 Javascript
JavaScript实现的经典文件树菜单效果
Sep 08 Javascript
利用JQuery阻止事件冒泡
Dec 01 Javascript
js实现交通灯效果
Jan 13 Javascript
JS实现unicode和UTF-8之间的互相转换互转
Jul 05 Javascript
js移动端图片压缩上传功能
Aug 18 Javascript
js断点调试经验分享
Dec 08 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
Feb 28 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
JavaScript实时更新当前的时间的示例代码
Jul 15 Javascript
vue中配置scss全局变量的步骤
Dec 28 Vue.js
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自定义分页类完整实例
2015/12/25 PHP
PDO实现学生管理系统
2020/03/21 PHP
js 分栏效果实现代码
2009/08/29 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
JS 事件机制完整示例分析
2020/01/15 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python提示No module named images的解决方法
2014/09/29 Python
解析Python中while true的使用
2015/10/13 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
Python logging模块原理解析及应用
2020/08/13 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
会计毕业生自我鉴定
2013/11/04 职场文书
咨询公司各岗位职责
2013/12/02 职场文书
音乐教学反思
2014/02/02 职场文书
公司联欢会策划方案
2014/05/19 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
通知怎么写?
2019/04/17 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP