资讯专栏INFORMATION COLUMN

用node构建一个小小的HTTP服务

lylwyy2016 / 2544人阅读

摘要:采用的事件驱动非阻塞模型,使它既轻量又高效,并成为构建运行在分布式设备上的数据密集型实时程序的完美选择。为服务端提供了一个事件驱动的异步的平台。它们都是事件驱动用事件轮询和非阻塞的处理用异步。常被用来构建服务器,在中服务器和程序是一样的。

刚开始接触node,来一发http服务纪念一下。 定义:

官网上(http://www.nodejs.org)给Node下的定义是:“一个搭建在Chrome JavaScript运行时
上的平台,用于构建高速、可伸缩的网络程序。Node.js采用的事件驱动、非阻塞I/O模型,使它
既轻量又高效,并成为构建运行在分布式设备上的数据密集型实时程序的完美选择。”

Node为服务端JavaScript提供了一个事件驱动的、异步的平台。它把JavaScript带到服务端中
的方式跟浏览器把JavaScript带到客户端的方式几乎一模一样。它们都是事件驱动(用事件轮询)和非阻塞的I/O处理(用异步I/O)。

在Node中,I/O几乎总是在主事件轮询之外进行,使得服务器可以一直处于高效并且随时能
够做出响应的状态,就像NGINX一样。这样进程就更加不会受I/O限制,因为I/O延迟不会拖垮服
务器,或者像在阻塞方式下那样占用很多资源。因此一些在服务器上曾经是重量级的操作,在
Node服务器上仍然可以是轻量级的。

node常被用来构建服务器,在node中服务器和程序是一样的。下面是一个简单的HTTP服务器实现:(http.js文件)

const http = require("http");

const hostname = "127.0.0.1";
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader("Content-Type", "text/plain");
  res.end("Hello World
");
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});监听端口,被访问的时候做一些事情。

运行文件......没错!就这么实现了!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79923.html

相关文章

  • Node_模块

    摘要:当某个执行完毕时,将以时间的形式通知执行操作的线程,线程执行了这个事件的回调函数。为了处理异步,线程必须有事件循环,不断的检查是否有未处理的时间。这种处理机制,称为事件环机制。方面使用第三方模块。 简介 V8引擎本身就是用于Chrome浏览器的JS解释部分,但是Ryan Dahl,把V8搬到服务器,用于做服务器的软件。Node是一个专注于实现高性能Web服务器优化的专家,在遇到V8而诞...

    zero 评论0 收藏0
  • 超长干货:基于DockerDevOps CI/CD实践——来自iHealth分享

    摘要:在猫屎氤氲的雾气里角仰望天花板,手机微信提醒这次构建成功或失败,并附带污言秽语。这时他可以开始往工位走,坐下时,微信又会提醒本次部署到成功或失败。与企业微信的集成在决定使用之前,需要知道的是,是一个高度依赖社区的项目。 前言 相信我,一切事情的发生都是赶鸭子上架,没有例外。人类所有伟大的变革都是迫不得已,可又是那么顺其自然。比如容器(docker)技术的诞生,比如箭在弦上的创业,比如野...

    Dongjie_Liu 评论0 收藏0
  • JavaScript、Node.js与V8关系

    对于了解Node的开发人员,我们都知道Node是基于Chrome V8引擎开发的能使JavaScript在服务器端运行的运行时环境(runtime environment)。一方面,它提供了多种可调用的API,如读写文件、网络请求、系统信息等。另一方面,因为CPU执行的是机器码,它还负责将JavaScript代码解释成机器指令序列执行,这部分工作是由V8引擎完成。 Motivation JavaS...

    Cciradih 评论0 收藏0
  • APubPlat 一款Devops自动化部署、持续集成、堡垒机开源项目、友好Web Termina

    摘要:嗨很高心你能进入这里,我是在这里给你介绍一款完整的自动化部署工具一款完整的自动化部署持续集成堡垒机并且友好的开源项目。应用管理可建立各种应用任务,前端,后端发布任务,可同时执行单机和多机任务,并实时显示任务日志。 嗨、很高心你能进入这里,我是zane,  在这里给你介绍一款完整的Devops自动化部署工具 APubPlat - 一款完整的Devops自动化部署、持续集成、堡垒机、并且友...

    Berwin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<