nodejs 动态返回html页面给浏览器

1.需求说明

做一个H5视频播放页面,根据手机扫不同的二维码进行播放对应的视频。

2.实现思路

用nodejs做后端服务,根据url传入的参数查找对应的视频,并且把设计好的网页返回给浏览器显示出来。
在这里插入图片描述

在这里插入图片描述

3.建立nodejs项目

安装好node之后,在D盘新建一个文件夹,命名为WebVideo,按着shift键点击右键,选择【在此处打开命令窗口】
在这里插入图片描述
下载 npm install express --save
在这里插入图片描述

下载 express 框架并全局安装 npm install express-generator -g
在这里插入图片描述
下载中间件 npm install express-static --save
在这里插入图片描述
下载完后,在项目根目录下新建一个文件夹,命名为mp4用于存放视频。
在这里插入图片描述

再在项目根目录下新建一个文件夹,命名为www用于存放H5网页 。
(H5开发请看这里:https://blog.csdn.net/weixin_38946164/article/details/116134231)
在这里插入图片描述

重点是这里,创建主文件 app.js
在这里插入图片描述
app.js代码

const express = require("express");
const fs = require('fs');
const path=require('path');
const app = express();

//域名,***要修改成自己的
var domainName = 'http://127.0.0.1:8080/';
//js文件路径,此文件保存有需要替换的网址,文件名pages-index-index.3ac195ae.js ***要修改为实际名称
var jsPath ='./www/static/js/pages-index-index.3ac195ae.js';

//主页文件路径
var htmlPath ='./www/index.html';
//新网址
var newUrl = '';

//设置www,mp4文件夹下的文件能够访问
app.use(express.static(path.join(__dirname,'www'))); 
app.use(express.static(path.join(__dirname,'mp4')));

app.get('/video',function (req,res) { 		
	var no = req.query.no; //req.query 解析前端传递过来的数据	
	var filePath = './mp4/' + no +'.mp4'; //拼接成视频在本地的路径
	
	//判断视频文件是否存在
	fs.exists(filePath,function(exists){ 
	    if(exists){
			console.log("文件存在")
			newUrl = domainName + no +'.mp4'; //拼接成视频网址 -- http://127.0.0.1:8080/1001.mp4
			wei() //调用方法
	    }
		if(!exists){
			console.log("文件不存在")
			//前端请求的视频文件不存在的时候播放默认视频
			newUrl = 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-a450e3eb-029c-4568-83af-cd4160c8852e/18c07633-05da-4b3e-8f4d-d586cbfd5b1b.mp4';
			wei()
		}
	});
	
	//把旧网址替换成新网址之后,再把整个网页返回给前端显示出来
	function wei(){		
		fs.readFile(htmlPath, function (err, data) {
			if (err) {
				return console.log(err);				   
			} else {					
				fs.readFile(jsPath, function (err, data) {
					if (err) {
					   return console.log(err);
					} else {
						//console.log("js读取成功: " + data.toString());
						let str = data.toString();	
						//newUrl不为空才执行
						if (newUrl.trim()!=="") {	
							//用正则表达式查找原网址并替换成新网址
							str = str.replace(/(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/g,newUrl);
							fs.writeFile(jsPath,str,function(err){
							   if (err) {
								   return console.log(err)
								} else {
								   return console.log('url替换成功')			   
								};
							});
						};
					};		
				});
								
				res.sendFile(  __dirname + "/www/index.html" ) //把index.html返回给浏览器, 用这个方法加载页面会更快		
				
				//res.writeHead(200,{"Content-Type":"text/html"});
				//res.write(data.toString());  //把index.html返回给浏览器
			}				
			//res.end();
		});
	};
}); 

app.listen(8080,'127.0.0.1');
console.log('服务开启成功:127.0.0.1:8080');


4.启动服务

在这里插入图片描述

5.浏览器输入网址测试

http://127.0.0.1:8080/video/?no=1002
在这里插入图片描述

6.生成二维码

用草料二维码生成器把域名生成二维码,手机浏览器或者微信扫码就能打开视频。

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTML是一种标记语言,用于创建网页的结构和内容。Bootstrap是一个流行的前端框架,它提供了许多预设的CSS样式和JavaScript插件,可以帮助开发人员快速构建具有响应式设计和现代化外观的网页。 Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它允许我们在服务器端使用JavaScript编写和运行代码。 那么如何在Node.js中使用HTML和Bootstrap呢? 首先,我们需要安装Node.js,并创建一个新的Node.js项目。 然后,我们可以使用npm(Node包管理器)安装所需的依赖项,其中包括Express.js框架和Bootstrap的相关包。 接下来,我们可以创建一个名为index.htmlHTML文件,并在其中编写我们需要的HTML结构和内容,使用Bootstrap的类和组件来增强样式和功能。 然后,在Node.js中创建一个名为server.js的文件,使用Express.js框架创建一个简单的HTTP服务器,并将index.html作为主页返回给客户端。 在server.js文件中,我们可以使用Express.js的静态文件中间件来提供静态文件,包括HTML、CSS和JavaScript文件。我们可以将Bootstrap的CSS和JavaScript文件放在一个名为public的文件夹中,并在server.js中指定该文件夹为静态文件夹。 最后,我们可以使用Node.js的命令行界面运行server.js文件,启动Node.js服务器。然后,我们可以在浏览器中输入服务器的URL地址,看到使用HTML和Bootstrap创建的网页。 总结起来,将HTML和Bootstrap转移到Node.js中需要安装依赖项、创建HTML文件、创建Node.js服务器文件,并使用Express.js提供静态文件。这样,我们就可以通过Node.js来提供和管理我们的网页。 ### 回答2: HTML Bootstrap 是一种前端开发框架,用于构建具有现代化外观和响应式设计的网页应用程序。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用于开发服务器端和网络应用。 要将 HTML Bootstrap 转换为 Node.js,我们需要借助一些工具和技术: 1. 构建 Node.js 服务器:通过使用 Express.js 或 Koa.js 这样的 Node.js 框架,我们可以构建服务器端应用程序。这些框架提供了路由、中间件和其他常用功能,使我们能够处理来自客户端的请求,并向其提供 HTML Bootstrap 页面。 2. 客户端与服务器端通信:在服务器端,我们可以使用模板引擎(如 EJS 或 Handlebars)来渲染 HTML Bootstrap 页面并将其发送给客户端。同时,在客户端,我们可以使用 AJAX 或 WebSocket 等技术来与服务器端进行双向通信。 3. 数据库集成:与服务器端应用程序一起使用数据库,可以使我们能够存储和检索数据。在 Node.js 中,我们可以使用诸如 MongoDB 或 MySQL 之类的数据库,并使用适当的驱动程序来连接和操作数据库。 4. 静态文件服务:HTML Bootstrap 使用了很多静态资源(如 CSS、JavaScript 和图像文件),我们需要配置服务器以提供这些文件。通过使用 Express.js 或 Koa.js 等框架提供的静态文件中间件,我们可以将这些文件映射到服务器的特定路由,并使其可供客户端访问。 综上所述,将 HTML Bootstrap 转换为 Node.js 需要在服务器端使用 Node.js 框架来构建应用程序,使用模板引擎渲染页面并发送给客户端,与数据库进行交互并提供静态文件服务。通过这些步骤,我们可以将静态的 HTML Bootstrap 页面转化为一个动态的、具有服务器端逻辑的 Node.js 应用程序。 ### 回答3: 将HTML和Bootstrap转换为Node.js涉及以下步骤: 1. 配置Node.js环境:首先,您需要在计算机上安装Node.js。通过访问Node.js官方网站,下载并安装相应的Node.js版本。 2. 创建Node.js项目:使用Node.js的命令行工具创建一个新的Node.js项目。在命令行中导航到您要创建项目的目录,并运行以下命令来初始化项目:`npm init` 3. 安装相关依赖:您需要从命令行安装一些Node.js模块,以便能够转换HTML和Bootstrap文件。使用以下命令安装所需的模块:`npm install express ejs bootstrap --save` 4. 创建服务器:使用Express模块创建一个Node.js服务器。创建一个index.js文件,并添加以下代码: ```javascript const express = require('express'); const app = express(); app.use(express.static('public')); app.set('view engine', 'ejs'); app.get('/', function(req, res) { res.render('index'); }); app.listen(3000, function() { console.log('Node.js服务器正在运行'); }); ``` 5. 创建视图文件:在项目根目录下创建一个views文件夹,并在其中创建一个名为'index.ejs'的文件。在该文件中添加您的HTML和Bootstrap代码。 6. 运行项目:在命令行中输入以下命令以启动Node.js服务器:`node index.js`。使用浏览器访问'http://localhost:3000',您应该看到从'index.ejs'中渲染出来的HTML和Bootstrap。 这些步骤将帮助您将HTML和Bootstrap转换为Node.js应用程序。您可以根据需要进行进一步的开发和定制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值