详解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 相关文章推荐
Dom与浏览器兼容性说明
Oct 25 Javascript
使用jquery实现select添加实现后台权限添加的效果
May 28 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
Apr 07 Javascript
js定时器的使用(实例讲解)
Jan 06 Javascript
JavaScript的jQuery库插件的简要开发指南
Aug 12 Javascript
举例说明JavaScript中的实例对象与原型对象
Mar 11 Javascript
JS创建事件的三种方法(实例代码)
May 12 Javascript
JSONP和批量操作功能的实现方法
Aug 21 Javascript
vue router demo详解
Oct 13 Javascript
详解node.js的http模块实例演示
Jul 12 Javascript
Vue-router 报错NavigationDuplicated的解决方法
Mar 31 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
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
import与export在node.js中的使用详解
2017/09/28 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
Javascript中的奇葩知识,你知道吗?
2021/01/25 Javascript
如何管理Vue中的缓存页面
2021/02/06 Vue.js
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
Python的Flask框架与数据库连接的教程
2015/04/20 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Python中取整的几种方法小结
2017/01/06 Python
Python面向对象特殊成员
2017/04/24 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python函数调用追踪实现代码
2020/11/27 Python
失业者真诚求职信范文
2013/12/25 职场文书
季度思想汇报
2014/01/01 职场文书
酒店员工检讨书
2014/02/18 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
采购部长岗位职责
2014/06/13 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
民事上诉状范文
2015/05/22 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书