前提:系统安装nodejs

搭建步骤

使用nodejs搭建服务器,简单的来说可以分为三步:

  1. require相应的模块
  2. 创建服务器
  3. 配置端口
  4. 启动服务器

必要的nodejs模块

以下模块都是以 var http=require('http')的方式在代码中使用

  • http 创建http服务
  • url 处理网站的url
  • path 处理服务器文件的路径,因为同一个文件在不同操作系统中路径的表示方法是不一样的,需要把他处理成统一的
  • fs 读取服务器的文件

一个最简单的nodejs服务器程序

//1.require http模块
var http=require('http')
//2.创建服务器,传入回调函数,作用是处理网页请求
var server=http.createServer(function(req,res){res.setHeader('Content-Type','text/html;charset=utf-8')res.writeHead(200,'OK')res.write(`<html><head></head><body><h1>hello world<h1><h2>你好</h2></body></html>`)res.end()
})
console.log('open http://localhost:8080')
//3.设置监听的端口
server.listen(8080)

打开终端,进入node-server文件夹,输入node index.js,然后在浏览器的地址栏输入:http://localhost:8080就可以看见hello world了

关于代码:

  • req代表请求,res代表响应
  • setHeader的作用是设置响应头
  • setHeader('Content-Type','text/html;charset=utf-8')作用是告诉浏览这是html代码,使用html方式去解析接收到的字符串
  • setHeader('Content-Type','text/plain;charset=utf-8')告诉浏览器用纯文本分方式去解析接收到的字符串,页面显示的内容是这样的:
  • charset=utf-8 作用是告诉浏览器使用utf-8方式解码,如果不写或者解码方式与文件的编码方式不一致,在网页端会看到乱码的情况
  • writeHead 作用是写http状态码,可以自己定义,比如说writeHead(200,'hello world'),在响应头里可以看见,但一般按照http的规定去定义
  • write 作用是向响应体里面写入字符串,可以分多次写入
  • end 作用是结束响应,如果不写,网页会一直处于加载状态
  • listen 作用是监听端口

有了上面的知识,就可以写一个简单的静态nodejs服务器了

搭建简单的静态服务器

服务器文件文件结构

node-server|-index.js|-static |-css |-style.css|-js |-main.js|-img |-cat.png|-index.html //网页的html文件

index.js代码:

//加载必须的模块
var http=require('http')
var fs=require('fs')
var url=require('url')
var path=require('path')//定位静态目录的位置,根据请求找出对应的文件
function staticRoot(staticPath,req,res){var pathObj=url.parse(req.url,true)if(pathObj.pathname==='/'){pathObj.pathname+='index.html'}
//读取静态目录里面的文件,然后发送出去var filePath=path.join(staticPath,pathObj.pathname)fs.readFile(filePath,'binary',function(err,content){if(err){res.writeHead(404,'Not Found')res.end('<h1>404 Not Found</h1>')}else{res.writeHead(200,'Not Found')res.write(content,'binary')res.end()}})
}
//创建服务器
var server=http.createServer(function(req,res){staticRoot(path.join(__dirname,'static'),req,res)
})
//监听8080端口
server.listen(8080)
console.log('http://localhost:8080')

输入网址得到的结果

网页的请求状态

上面的代码主要是使用nodejs的fs模块,可以读取服务器里面的文件,style.css、main.js、index.html和cat.png都是fs模块根据不同的请求路径来读取得到的,最终通过res.write()方法发送到浏览器端。

如果需要路由功能,只需要在index.js里面添加路由处理程序就可以了。

svn服务器搭建和使用_简单使用nodejs搭建一个静态服务器相关推荐

  1. AndroidStudio_使用NanoHTTPD搭建HTTP服务_把android设置当成一个http服务器来使用---Android原生开发工作笔记225

    多的不说了,直接看这个案例就可以了 package com.baidu.idl.face.main.server;import android.app.Activity; import android ...

  2. nodejs 创建一个静态资源服务器 +路由

    0.补充 1.Node.js 创建的第一个应用 1.引入 http 模块 var http = require("http"); 2.创建服务器 接下来我们使用 http.crea ...

  3. 使用Nodejs创建一个Web服务器应如何操作?以及路由相关知识了解

    文章目录 Nodejs创建一个Web服务器 Node.js创建第一个应用 Web服务器介绍 Nodejs创建一个Web服务器 路由 EJS模块引擎 Get.Post 获取GET传值 获取POST传值 ...

  4. 动态网站的技术路线_简单动态网站搭建

    如何在windows服务器上配置wordPress和discuz 网站建设中的概念讲解 网站建设的基础操作 网站程序的基础使用 网站程序的优化 简单动态网站搭建 软件部署 域名和主机的购买 域名解析 ...

  5. node.js request get 请求怎么拿到返回的数据_从零开始用nodejs写一个简单的静态服务器

    nodejs搭建服务器第一步 const http = require("http")const PORT = 8000 const server = http.createSer ...

  6. 云服务器架设网站教程_手把手教你搭建腾讯云服务器入门(图文教程)

    本文由博主 威威喵 原创 博客主页:https://blog.csdn.net/smile_running 背景 暑假期间,愁着无聊但也不能荒废学业吧,毕竟以后想靠技术混口饭吃!为了实施自己的计划,特 ...

  7. 云服务器建站原理_第一篇博客---阿里云服务器建站过程(小菜鸟的第一次尝试)...

    最近学习了前后端的相关技术,就想租一个服务器试一下,玩一玩,简单了解了一下阿里云的服务器,简单介绍一下: 一:什么是云服务器ECS 是阿里云产品体系中,最基础的计算服务,通常用作应用程序的运行环境,最 ...

  8. 运动场馆预定系统怎么做_简单教你做一个健身房预约小程序

    一,开发手段 1:linux+php+mysql+微信小程序 服务器采用linux服务器,linux服务器保证了服务的安全性,以及稳定性,linux中搭载apache服务器,稳定性非常的好,毕竟是老牌 ...

  9. Nodejs实现的一个静态服务器例子

    参考cnodejs.org上面的静态服务器例子,写了下面的一个nodejs静态服务器例子,里面包含cache,压缩,贴代码如下 /** * 静态文件服务器测试例子 * User: xuwm * Dat ...

最新文章

  1. python计算输入的两个数字,try...except...判断是否输入的是数字,如果是则相加
  2. java的HttpClient如何去支持无证书访问https
  3. 字符串与byte[]之间的转换
  4. windows mobile开发循序渐进(4)移动应用程序的数据存储之本地数据存储第二篇
  5. elasticSearch6源码分析(12)DiscoveryModule
  6. Semantic UI
  7. 部署在Netweaver上的Fiori应用的WebContent文件夹
  8. ldap配置系列二:jenkins集成ldap
  9. jenkins 插件目录_三十二张图告诉你如何用Jenkins构建SpringBoot
  10. BP的matlab实现
  11. sqli-labs(19)
  12. 网狐棋牌游戏用户数据库QPAccountsDB开发文档
  13. CSS绝对定位、相对定位
  14. 遵义二十一中2021高考成绩查询入口,遵义第二十一中学2021年招生简章
  15. 联想Y400 拆光驱加装固态硬盘
  16. 魔兽世界,你不是一个人
  17. 吴恩达机器学习[9]-神经网络学习
  18. Cassandra数据分布之1数据中心(DC)和机架(RACK)
  19. html 提示语为英文,耳熟能详的电话提示语英文版
  20. 黑客教父龚蔚:是谁打开了潘多拉的魔盒

热门文章

  1. Leet Code OJ 482. License Key Formatting [Difficulty: Medium]
  2. Flume性能测试报告
  3. 前端做微信好友分享_前端微信分享,调用微信分享,分享朋友圈,分享微信好友,分享qq空间,qq好友...
  4. MyBatis3 用log4j在控制台输出 SQL----亲测,真实可用
  5. leetcode--70. 爬楼梯
  6. 深入理解事件循环机制
  7. js带开关的时钟_昌利JS系列混凝土搅拌机衬板配件
  8. STM32启动文件代码解析
  9. flask查询mysql数据展示_flask再学习-思考之怎么从数据库中查询数据在页面展示!...
  10. php教程链接,php自动给网址加上链接的方法,php网址链接方法_PHP教程