网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 服务器教程 > 怎么用nodejs搭建http服务器
商业源码 服务器教程 2024-01-20 19:16:02

怎么用nodejs搭建http服务器

怎么用nodejs搭建http服务器,第1张

1Nodejs安装包及源码下载地址为:https://nodejsorg/en/download/

Git下载地址为:https://git-scmcom/download/win。

2按照安装提示操作即可,选择安装路径、npm。

3环境变量默认C:\Users\Administrator\AppData\Roaming\npm\node_modules。

创建新的变量

创建方法:我的电脑>属性》高级系统设置》环境变量》,创建名NODE_PATH,值为nodejs的当前安装目录。

命令行工具是运行在当前计算机用户下的,所以开头总是C:/Users/XXX/Desktop>,而不会跟你的nodejs安装的位置有关。

安装node后,在cmd里有两种模式,开发模式和命令行模式,要进入开发模式直接输入node回车即可,此时可以输入代码,比如require ("express"),如果直接在命令行模式下输入require类的语句是会报错的,提示'require'不是内部或外部命令,也不是可运行的程序或批处理文件。从开发模式退出可用exit命令也可以用快捷捷,ctrl+D或两次ctrl+C

4创建应用

我们先创建一个项目目录,目录可自己定义,本案例的目录为 e:/node/serve。

由于我们要搭建的是服务器,所以我把第一个文件命名为serverjs。

在serverjs里面输入以下代码:

const http = require('http');//实例化“http”

const hostname = '127001';

const port = 3000;

const server = httpcreateServer((req, res) => {

resstatusCode = 200; //状态值200:OK

ressetHeader('Content-Type', 'text/plain'); //内容类型:text/plain

resend('Hello World\n'); //响应结果“hello world”

});

serverlisten(port, hostname, () => {  //实现监听

consolelog(`Server running at http://${hostname}:${port}/`);

});

5应用执行

打开git命令行,输入cd e:/node/serve/

之后输入node servicejs

怎么编写网站的HTTP反向代理服务器在Nodejs上实现一个简单的HTTP代理程序还是非常简单的,本文章的例子的核心代码只有60多行,只要理解内置http模块的基本用法即可,具体请看下文。

接口设计与相关技术

使用httpcreateServer()创建的HTTP服务器,处理请求的函数格式一般为function(req,res){}(下文简称为requestHandler),其接收两个参数,分别为httpIncomingMessage和httpServerResponse对象,我们可以通过这两个对象来取得请求的所有信息并对它进行响应。

主流的NodejsWeb框架的中间件(比如connect)一般都有两种形式:

中间件不需要任何初始化参数,则其导出结果为一个requestHandler

中间件需要初始化参数,则其导出结果为中间件的初始化函数,执行该初始化函数时,传入一个options对象,执行后返回一个requestHandler

为了使代码更规范,在本文例子中,我们将反向代理程序设计成一个中间件的格式,并使用以上第二种接口形式:

//生成中间件

consthandler=reverseProxy({

//初始化参数,用于设置目标服务器列表

servers:["127001:3001","127001:3002","127001:3003"]

});

//可以直接在http模块中使用

constserver=httpcreateServer(handler);

//作为中间件在connect模块中使用

appuse(handler);

说明:

上面的代码中,reverseProxy是反向代理服务器中间件的初始化函数,它接受一个对象参数,servers是后端服务器地址列表,每个地址为IP地址:端口这样的格式

执行reverseProxy()后返回一个function(req,res){}这样的函数,用于处理HTTP请求,可作为httpcreateServer()和connect中间件的appuse()的处理函数

当接收到客户端请求时,按顺序循环从servers数组中取出一个服务器地址,将请求代理到这个地址的服务器上

服务器在接收到HTTP请求后,首先需要发起一个新的HTTP请求到要代理的目标服务器,可以使用httprequest()来发送请求:

constreq=httprequest(

{

hostname:"目标服务器地址",

port:"80",

path:"请求路径",

headers:{

"x-y-z":"请求头"

}

},

function(res){

//res为响应对象

consolelog(resstatusCode);

}

);

//如果有请求体需要发送,使用write()和end()

reqend();

要将客户端的请求体(Body部分,在POST、PUT这些请求时会有请求体)转发到另一个服务器上,可以使用Stream对象的pipe()方法,比如:

//req和res为客户端的请求和响应对象

//req2和res2为服务器发起的代理请求和响应对象

//将req收到的数据转发到req2

reqpipe(req2);

//将res2收到的数据转发到res

res2pipe(res);

说明:

req对象是一个ReadableStream(可读流),通过data事件来接收数据,当收到end事件时表示数据接收完毕

res对象是一个WritableStream(可写流),通过write()方法来输出数据,end()方法来结束输出。

以上就是小编对于怎么编写网站的HTTP反向代理服务器的解答。

服务器网站代理服务器写网站

需要socket(套接字)编程、HTTP协议的知识,实现一个最简单的HTTP服务器,其实就是根据HTTP协议的通信规则来发送socket数据,往往是绑定(用bind调用)一个socket(套接字)然后监听(用listen调用)80端口,具体任何实现可以参考网上的一些简单的代码。之所以说这是最简单的HTTP服务器,是因为HTTP服务器还要处理并发、缓存等功能,更进一步还要支持某种动态脚本比如PHP的模块。

本Guide利用Eclipse及Ant建立简单Web Service演示Web Service基本发程:

1系统条件:

Eclipse Java EE IDE for Web Developers

Java SE 6

Windows XP

2基本环境搭建:

1)Java SE6 JDK安装:载Java SE6 JDK双击安装默认选项进行安装即

2)Eclipse安装与配置:

安装直接解压

配置处两点Window>Preferences>Java>Installed JREs确保设置:

安装路径能略同

Window>Preferences>Java>Compiler 确保设置:

3建立Server端工程相关包与类:

创建Java Project命名wsServerHelloWorld:

项目建立包:orggnuhpcwsServer

包边建立类:SayHello

SayHellojava文件输入代码:

package orggnuhpcwsServer;

import javaxjwsWebService;

@WebService

public class SayHello {

private static final String SALUTATION = "Hello";

public String getGreeting(String name) {

return SALUTATION + " " + name;

}

}

其注意@WebService 称作annotation或者metadataJava SE 5Web Services Metadata Specification引入Java SE 6于Web Services规范升级及JAX-WS(Java API for XML Web Services)20规范些升级使我Web Services创建调用变更加容易使用些新功能我仅仅使用简单Annotations注释Java类创建Web Services发者其类前用该annotations指定类告诉runtime engineWeb Service式操作使能该类annotations产布署Web ServiceWSDL映射annotationsJava源代码与代表Web ServiceWSDL元素连接起

4使用Ant产Server端代码:

首先项目新建文件:buildxml使用OpenWith>AntEditor打输入脚本代码:

<arg line="-cp /bin -keep -s /src -d /bin

orggnuhpcwsServerSayHello"/>

default指定默认执行Targetwsgen,wsgen创建能够使用WebService类所用于WebService发布源代码文件经编译二进制类文件WSDL符合规范该类WebService

Target名称wsgen具体执行命令参数:

-cp 类路径

-keep产java文件

-s 产源文件放哪

-d 产输问价放哪

使用Ant Build选项运行:

功执行提示我刷新Project

我Project区域看结:

5布Web Service

orggnuhpcwsServer建立类RunService:

package orggnuhpcwsServer;

import javaxxmlwsEndpoint;

public class RunService {

/

@paramargs

/

public static void main(String[] args) {

Systemoutprintln("SayHello Web Service started");

Endpointpublish("" ,

new SayHello());

}

}

运行Run As>Java Application我结说明web serviceServer端已经启

6查看WSDL:

Window>Show View>Other>General>Internal Web Browser其输入:wsdl

看看底WSDL都记录哪些信息看完停止该Server

7监测Server

我创建完Server用Eclipse Web Services Explorer监测Server

Window>Open Perspective>Other >JavaEE

打Eclipse Web Services Explorer

点击右角WSDL Page按钮:

单击WSDL MainURL输入:wsdl 按Go按钮现视图:

我触发Web Service操作:点击getGreetings添加参数比gnuhpc点击Go按钮:

8创建Client端 工程相关包与类:

创建Java Project命名wsClientHelloWorld项目建立包:orggnuhpcwsClient

9使用Ant产Client代码框架:

编写Web service使用工具利用WSDL进行调用客户端桩;或者使用底层API手编写Web service前者便者灵现我通前者做说明:

新建文件buildxml

New>File>buildxml

<arg line="-keep -s /src -p orggnuhpcwsClient

-d /bin wsdl"/>

注意:wsgen 支持 Java class 创建 Web serviceswsimport 支持 WSDL 创建 Web services别应于 JAX-RPC 式 Java2WSDL WSDL2Java要根据发布WSDL进行创建要先运行RunServer原

运行ServerRunService : Run As>Java Application>

运行该Ant脚本产Client代码:Run As>Ant Build

运行功提示:

代码:

步读取WSDL并客户端桩些桩我代码所用Java类接口些桩给服务器端功能提供客户端接口例我服务器提供Maths服务该服务带叫做add我客户端代码调用桩桩实现该使用参数封装Java调用变Webservice请求请求基于HTTP发送给服务器且使用SOAP作RPC协议监听服务器接收该SOAP消息(十八九)其转换服务器处调用

服务器 代码 对象 中间件 初始化
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎么用nodejs搭建http服务器

商业源码 钻石

分享到:
上一篇
如何系统的学习一下服务器的知识?
下一篇
win10怎样取消代理服务器

相关推荐

梦幻西游中最嚣张的服战队到底有多强?

梦幻西游中最嚣张的服战队到底有多强?

为什么英雄联盟总是出现游戏崩溃请重新连接

为什么英雄联盟总是出现游戏崩溃请重新连接

苹果手机一直显示服务器连接错误怎么办啊

苹果手机一直显示服务器连接错误怎么办啊

我的世界正版服务器有哪些?(我是正版)

我的世界正版服务器有哪些?(我是正版)

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...