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

前言

在 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内置终端也可以)

二、启动 hello.js

// 启动命令
node hello.js

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

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

测试请求

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

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

(0)

相关推荐

  • Node.js搭建WEB服务器的示例代码

    前言 这几天为了熟悉vue.js框架,还有webpack的使用,就准备搭建一个发布和浏览markdwon的简单WEB应用.原本是想着用bash脚本和busybox的httpd来作为后台服务,但是bash脚本解析和生成JSON非常不方便,而用Java语言写又觉得部署不方便,所以就想到了正在用到的Node.js,于是就有了这篇博文.(文末有本文代码的github地址) 简单例子 首先,从搭建最简单的 Hello world 开始,建立以下目录.文件和内容. 建立项目及运行 project web-s

  • Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)

    在 Node.JS 中进行端口扫描还是比较方便的,一般会有广播和轮询两种方式.即使用广播和扫描,使用广播发出的消息有时会被路由器屏蔽,所以并不可靠. 使用node.js中的net模块,可以直接尝试向目录主机的某个端口进行连接,如果能建立连接,则说明该地址存在服务器. var socket = new Socket() socket.connect(port, host) socket.on('connect', function() { //找到port 和 host 地址 }) 所以只要进行2

  • 利用node.js搭建简单web服务器的方法教程

    前言 使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 早先不使用web服务器的情况下想要在浏览器端访问本地资源,可以利用firefox浏览器,其可以自己启动一个小型web服务器. 为了让刚接触node的人也能大体看懂,本文的代码我将尽量简化. 准备 首先,

  • Node.js实战 建立简单的Web服务器

    前面一章,我们介绍了Node.js这个面向互联网服务的JavaScript服务器平台,同时Node.js的运行环境已经搭建起来,并通过两段HelloWorld程序验证了Node.js的基本功能.本章我们同样通过实战的演练,利用Node.js建立一个简单的Web服务器. 如果你熟悉.NET或其他类似平台的Web开发,你可能会像,建立一个Web服务器有什么,在Visual Studio中建立一个Web工程,点击运行即可.事实的确是这样,但请不要忘记,这样的代价是,比如果说,你是用.NET开发Web应

  • Node.js原生api搭建web服务器的方法步骤

    node.js 实现一个简单的 web 服务器还是比较简单的,以前利用 express 框架实现过『nodeJS搭一个简单的(代理)web服务器』.代码量很少,可是使用时需要安装依赖,多处使用难免有点不方便.于是便有了完全使用原生 api 来重写的想法,也当作一次 node.js 复习. 1.静态 web 服务器 'use strict' const http = require('http') const url = require('url') const fs = require('fs'

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

    前言 在 node.js 中创建一个服务器非常简单,只需要使用 node.js 为我们提供的 http 模块及相关 API 即可创建一个麻雀虽小但五脏俱全的web 服务器,相比 Java/Python/Ruby 搭建web服务器的过程简单的很. http model 要想创建一个基于 node.js 的 web 服务器,你就必须使用 node.js 提供的 http 模块,node.js 中的 http 接口旨在支持传统上难以使用的协议的许多特性, 特别是,大块的.可能块编码的消息,接口永远不会

  • 使用NODE.JS创建一个WEBSERVER(服务器)的步骤

    目录 什么是 nodejs 安装nodejs 如何使用node创建hello world? 如何使用nodejs读写文件 使用nodejs创建web服务器 如何根据不同的请求路径返回不同数据 将数据响应到前端 什么是 nodejs Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动.非阻塞式I/O模型, 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP.Python.

  • 详解Node.js中间件是怎样工作的

    目录 什么是 Express 中间件? 编写 Express 中间件的要求 Express中间件:基础 中间件解决什么问题?为什么要用它? 中间件函数是什么样的? 中间件链 Express中间件的类型 内置中间件 错误处理中间件 第三方级别的中间件 总结 什么是 Express 中间件? 中间件在字面上的意思是你在软件的一层和另一层中间放置的任何东西. Express 中间件是在对 Express 服务器请求的生命周期内所执行的函数. 每个中间件都可以访问其被附加到的所有路由的 HTTP 请求和

  • Node.js创建一个Express服务的方法详解

    本文实例讲述了Node.js创建一个Express服务的方法.分享给大家供大家参考,具体如下: 1.创建一个HttpServer服务端 在node.js官网下载好node的Windows版本后一路下一步安装好了node,新建一个server.js文件,开始第一个node文件.首先在文件开头需要使用require包含所需要的模块,然后利用http.createServer创建一个server,并执行回调函数.在回调函数内对请求req进行处理,并返回res结果. 利用url的parse方法将req请

  • 详解node.js中的npm和webpack配置方法

    概述 Node.js用c++语言编写而成的,是一个基于chrome V8引擎的javascript运行环境,让javaScript的运行脱离浏览器服务端,可以使用javaScript语言书写服务器端代码 1.使用node来实现一个http服务器 下面创建了一个端口为8787的服务器.他与php,java等不同,像php本地还要基于阿帕奇服务器,node.js能用代码快速搭建一个服务器. // 引入http模块 var http = require("http"); // 调用http的

  • 详解node.js 事件循环

    Node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高. Node.js 几乎每一个 API 都是支持回调函数的. Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现. Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数. 事件驱动程序 Node.js 使用事件驱动模型,当web server接收到请

  • 详解Node.js使用token进行认证的简单示例

    本文只介绍简单的应用,关于json web token的具体介绍以及原理请参考阮一峰老师的JSON Web Token 入门教程. 使用的Node框架是koa2,前端发送ajax请求使用axios 首先创建工程目录: static中存放静态资源,views存放前端模板,server.js为后端代码. 安装必要的依赖项: "dependencies": { "@koa/router": "^8.0.8", "jsonwebtoken&qu

  • 详解node.js的http模块实例演示

    上世纪六七十年代,红岸基地一直在向茫茫外太空发送讯号,当叶文洁通过太阳作为广播,将地球的讯号向外发送时,宇宙的各个先进文明都接收到了讯号,其中就包括了离我们最近的三体星. 本篇用node.js的http模块模拟这一事件. let http = require('http') // 创建一个web服务器 let server = http.createServer() server.on('request', function () { console.log('我们接收到了一个用原始膜发送讯号的

  • 详解Node.JS模块 process

    process 模块是 nodejs 提供给开发者用来和当前进程交互的工具,它的提供了很多实用的 API.从文档出发,管中窥豹,进一步认识和学习 process 模块: 如何处理命令参数? 如何处理工作目录? 如何处理异常? 如何处理进程退出? process 的标准流对象 深入理解 process.nextTick 如何处理命令参数? 命令行参数指的是 2 个方面: 传给 node 的参数.例如 node --harmony script.js --version 中,--harmony 就是

  • 详解JavaScript如何创建一个非自动播放的GIF网络组件

    目录 一些很可爱的测试数据 构建Web组件 逻辑 结果 今天,我将向您展示如何创建一个允许您的用户决定是否要播放 gif 的 Web 组件!让我们开始吧. 一些很可爱的测试数据 这里用的gif是小骆驼和猫的这种可爱互动: 哇,太可爱了!我可以看一天这个 构建 Web 组件 对于这个 Web 组件,我们需要一些东西: 画布(“缩略图”所在的位置) 一张图片(实际的 gif) 标有“gif”的标签 一些造型 让我们这样做: const noAutoplayGifTemplate = document

随机推荐