博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在node.js中建立你的第一个HTTp服务器
阅读量:5066 次
发布时间:2019-06-12

本文共 2980 字,大约阅读时间需要 9 分钟。

这一章节我们将从初学者的角度介绍如何建立一个简单的node.js HTTP 服务器

 

创建myFirstHTTPServer.js

//Lets require/import the HTTP modulevar http = require('http');//Lets define a port we want to listen toconst PORT=8080; //We need a function which handles requests and send responsefunction handleRequest(request, response){    response.end('It Works!! Path Hit: ' + request.url);}//Create a servervar server = http.createServer(handleRequest);//Lets start our serverserver.listen(PORT, function(){    //Callback triggered when server is successfully listening. Hurray!    console.log("Server listening on: http://localhost:%s", PORT);});

使用node 运行文件

> node myFirstHTTPServer.js#outputServer listening on: http://localhost:8080

上述已经在浏览器上打开了 http://localhost:8080   

  

分析:

//Lets require/import the HTTP modulevar http = require('http');

node.js有用于穿件http/https 的 核心模块,因此我们只需引入http模块就可创建一个HTTP 服务器

//We need a function which handles requests and send responsefunction handleRequest(request, response){    response.end('It Works!! Path Hit: ' + request.url);}

我们需要一个用来处理所有请求和响应的函数

上述代码是你服务器项目的入口点(即 你可以根据你的业务逻辑来响应请求)

//Create a servervar server = http.createServer(handleRequest);//Lets start our serverserver.listen(PORT, function(){    //Callback triggered when server is successfully listening. Hurray!    console.log("Server listening on: http://localhost:%s", PORT);});

上述,创建了一个吸金的HTTP服务器对象,并要求其监听一个端口

createServer方法用来创建一个新的服务器实例并且使用监听函数作为参数

然后,我们即可调用监听在服务器上的函数来启动服务器

 

 

上述是基本的HTTP服务器运行

现在我们添加一些实际需求

 

对于不同的URL路径,你的服务器应该有不同的响应

这意味着我们需要一个dispatcher

dispatcher是一种路由(router),在针对不同的指定URL路径时,你可用其来调用你想调用的请求处理函数代码。

第一:安装dispatcher 模块

有很多不同的模块,针对演示例子,我们安装了基本的模块

> npm install httpdispatcher

注意:nmp是一个包管理器,其提供了针对js和nodeJs的核心开源模块。我们使用 ‘npm install ’命令就可安装所有所需的模块

下面,使用dispatcher模块

var dispatcher = require('httpdispatcher');

接着,让dispatcher在监听函数中运行

//Lets use our dispatcherfunction handleRequest(request, response){    try {        //log the request on console        console.log(request.url);        //Disptach        dispatcher.dispatch(request, response);    } catch(err) {        console.log(err);    }}

让我们定义一些路由

路由定义了当浏览器请求一个特地的URL时,服务器应该做什么

//For all your static (js/css/images/etc.) set the directory name (relative path).dispatcher.setStatic('resources');//A sample GET request    dispatcher.onGet("/page1", function(req, res) {    res.writeHead(200, {
'Content-Type': 'text/plain'}); res.end('Page One');}); //A sample POST requestdispatcher.onPost("/post1", function(req, res) { res.writeHead(200, {
'Content-Type': 'text/plain'}); res.end('Got Post Data');});

现在让我们尝试不同的地址:

  • GET /page1 => 'Page One'
  • POST /page2 => 'Page Two'
  • GET /page3 => 404
  • GET /resources/images-that-exists.png => Image resource
  • GET /resources/images-that-does-not-exists.png => 404

 你可通过在浏览器地址栏输入URL来进行一个get请求。针对Post请求,你可使用Postman工具

 

ok!你现在已经可以建立一个简单的HTTP服务器并且使之运行了!

上述我们创建了一个基本的HTTP服务器,其创建是通过使用 http模块和 一个简单的dispatcher模块 来实现的, displatcher是用来分配(dispatch)http请求到合适的路由上。

 

 

  

转载于:https://www.cnblogs.com/RachelChen/p/6604369.html

你可能感兴趣的文章
Web服务器超时处理
查看>>
keil C 51 strlen库函数使用
查看>>
JS取得绝对路径
查看>>
排球积分程序(三)——模型类的设计
查看>>
编程原则 流水账
查看>>
tomcat URL乱码问题
查看>>
wpf首次项目开发技术总结wpf页面
查看>>
python numpy sum函数用法
查看>>
Linux中的SELinux详解--16
查看>>
php变量什么情况下加大括号{}
查看>>
less入门
查看>>
如何实现手游app瘦身?
查看>>
linux程序设计---序
查看>>
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
21.Longest Palindromic Substring(最长回文子串)
查看>>
HDU 4635 Strongly connected
查看>>
[WPF]WPF开发方法论
查看>>
【转】先说IEnumerable,我们每天用的foreach你真的懂它吗?
查看>>
springboot web 服务器选择
查看>>