网站模板库
  • 首页
  • 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搭建web服务器
商业源码 服务器教程 2024-02-02 4:36:01

如何用nodejs搭建web服务器

如何用nodejs搭建web服务器,第1张

主要解决两个问题,1是静态资源的处理,2是动态资源的路由。

静态资源在nodejs里的意思是不变的,如、前端js、css、html页面等。

动态资源我们一般指aspx页面,ashx页面,asp页面,jsp页面,php页面等,而nodejs里其实没动态资源这一说,它对请求的处理都是由回调方法完成的,在我实现的httserver里,借鉴了ashx的写法,把处理请求的js文件看作动态资源。

首先实现一个处理静态资源的函数,其实就是对本地文件的读取操作,这个方法已满足了上面说的静态资源的处理。

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

确认已经安装完成

node -v

npm安装express插件。

npm install express

express 安装nodejs项目hello。

express hello

进入项目目录,安装nodejs依赖模块

cd hello && npm install

启动服务。

node appjs

访问创建好的http服务

浏览器输入:http://localhost:3000/ 进入访问,

即可看到你搭建的http服务,简单的说就是一个自己的网站了。

Delphi、nodejs、net、java、php、python。每个云管理的AI和ML服务都提供了对多种语言的支持,提供可视化、可定制的持续交付流水线服务,实现缩短交付周期和提升交付质量的效果。包括支持Delphi、nodejs、net、java、php、python等计算机流水线(Pipeline)技术是目前广泛应用于微处理芯片(CPU)中的一项关键技术,计算机流水线技术指的是对CPU内部的各条指令的执行方式的一种形容。

由于自身特性的原因。node程序必须保持开启才能访问网站,而当我们关闭SSH时这些进程都会被停止。有以下3种方法可以避免这个问题。

screen

Screen,虚拟终端管理器。可以在后台管理终端界面,防止SSH断开以后任务停止运行。

安装方法:

sudo apt-get screen (以ubuntu为例)

使用方法:

使用screen -S [任意id]命令进入一个名为id的终端,此时便可以随意执行操作 

例如执行sudo apt-get upgrade,或者其它消耗时间比较长的工作,像编译内核等等。

按ctrl+a后再按d保存虚拟终端,系统提示deatached即为保存成功 

接下来可以断开SSH终端,虚拟终端仍会执行。

访问已经创建好的终端 

screen -ls 列出已经创建的正在后台运行的终端 

screen -r xxx 进入终端 

例如 screen -r terminal1

彻底退出 

screen -r 进入终端后执行exit即可完全退出

PM2

pm2 是一个带有负载均衡功能的Node应用的进程管理器当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着

安装方法

npm install -g pm2

使用方法

启动应用 pm2 start -watch appjs

重启应用 pm2 restart appjs

显示进程列表 pm2 list

停止某应用 pm2 stop app_name|app_id

停止所有应用 pm2 stop all

小白方案

个人目前用的是宝塔Linux面板,可以说是把Linux的各种操作都已比较简单的形式展现出来了,不需要什么Linux知识就能掌握 宝塔官网了解一下

而这其中内置了PM2管理,装一下就OK了 

使用Nodejs搭建Web服务器是学习Nodejs比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块、文件系统、url解析模块、路径解析模块、以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器。

作为一个Web服务器应具备以下几个功能:

1、能显示以html/htm结尾的Web页面

2、能直接打开以js/css/json/text结尾的文件内容

3、显示资源

4、自动下载以apk/docx/zip结尾的文件

5、形如http://xxxcom/a/b/ , 则查找b目录下是否有indexhtml,如果有就显示,如果没有就列出该目录下的所有文件及文件夹,并可以进一步访问。

6、形如http://xxxcom/a/b, 则作301重定向到http://xxxcom/a/b/ , 这样可以解决内部资源引用错位的问题。

引入需要用到的几个模块:

创建服务并在指定的端口监听:

在创建服务的时候需要传递一个匿名函数processRequest 对请求进行处理,processRequest接收2个参数,分别是request和response, request对象中包含了请求的所有内容,request是用来设置响应头以及对客户端做出响应操作。

请求处理函数中有几个重点需要说一下:

对于路径中有中文的,浏览器会自动进行编码(英文不变,中文会变),因此在接收到地址后,需要对地址进行解码,否则最后得到的路径和真实路径不相符,

当访问路径不是以具体的文件结尾,并且不是以/结尾,则需要通过重定向加上/,表示当前目录,否则当前路径下的静态资源会找不到

如果访问路径是目录,则列出该目录下所有文件及文件夹,并可以点击访问,为了让中文目录能正常显示,则还要在header中设置charset=utf-8

核心代码就这么多,大概140行左右,完整的代码已上传到Git:https://githubcom/git-onepixel/Node

如果要运行demo,打开cmd切换到根目录,运行node start即可。

终端 路径 资源 几个 页面
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何用nodejs搭建web服务器

商业源码 钻石

分享到:
上一篇
推荐几个电信HTTP代理服务器
下一篇
我打算在阿里云买个域名,然后用香港的主机,这样是不是,域名不用备案?

相关推荐

怎样激活Windows Server 2003的终端服务

怎样激活Windows Server 2003的终端服务

windows中后台启动服务是怎样设置的

windows中后台启动服务是怎样设置的

如何设置Windows 2008允许多用户登陆远程桌面系统

如何设置Windows 2008允许多用户登陆远程桌面系统

mysql数据库表里中文乱码应该选哪种编码?

mysql数据库表里中文乱码应该选哪种编码?

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标签...