nodejs 简单实现动态html的方法


Posted in NodeJs onMay 12, 2018

动态替换html内容

1.实现的功能及原理

实现了将,用户表单的数据,与html相结合,将用户输入的数据,显示到html对应的位置。

原理:通过正则表达式,替换html中的模板数据 如用户名{name},可以通过拿到用户提交的name的值value,通过

replace(正则表达式,value)的方式替换掉原模板数据,并输出到客户端。

2.主要用到的方法和模块

2.1文件操作模块 var fs=require("fs");

方法:

2.1.1 异步读取文件的方法

fs.readFile(path,callback);

参数说明:

path:文件的路径(包含文件名称)

callback:文件读取完毕的回调函数

文件读取的数据,从该方法获得,会自动填充

callback:function(err,data){
 if(err){
 //读取文件错误的逻辑
 }else{
 //对数据的操作,如打印
 console.log(data);
 }
 }

2.2 数据处理模块 var querystring=require("querystring");

方法:

2.2.1 将字符串转换成对象

querystring.parse(post);

2.3 post请求主要方法

监听有post数据上传的方法:request.on('data',funcation(chunk){
 //chunk post数据碎片
 });
 监听post数据上传完毕的方法:request.on('end',function(){
 //相关逻辑
 });

3.核心代码requestHandler.js

/*
 请求处理
 * */
//加载node非阻塞线程模块
//var exec=require("child_process").exec;
//加载queryString模块和文件上传模块
var http = require("http");
var formidable = require('formidable');
var fs = require("fs");
var path = require("path");
var querystring=require("querystring");
function login(request, response) {
var post="";
//监听post发送请求
request.on('data',function (chunk) {
post += chunk;
});
//数据接收完毕
request.on('end',function(){
post=querystring.parse(post);
/*替换的数据模板字段*/
var arr=["name","password"];
function recall (data) {
dataStr = data.toString();
//遍历模板字段
for (var i = 0; i < arr.length; i++) {
//全局替换
var re=new RegExp('{'+arr[i]+'}','g');
dataStr=dataStr.replace(re,post[arr[i]]);
}
response.writeHead(200, {"Content-Type": "text/html"});
response.write(dataStr);
response.end();
}
fs.readFile("login.html",function (err,data) {
recall(data);
});
});
}
function index (request, response) {
fs.readFile("login.html",function (err,data) {
if (err) {
throw err.toString();
} else{
response.writeHead(200, {"Content-Type": "text/html"});
response.write(data);
response.end();
}
})
}
exports.login = login;
exports.index=index;

4.html模板

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
用户名:{name}<br /> 
    <!--
  {name},{password}为要替换的模板字段
    -->
密 码:{password}<br />
<form action="/login" method="post">
<input type="text" name="name" /><br />
<input type="password" name="password" /><br />
<input type="submit" value="提交"/>
</form>
</body>
</html>

以上这篇nodejs 简单实现动态html的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
nodejs根据ip数组在百度地图中进行定位
Mar 06 NodeJs
nodejs中全局变量的实例解析
Mar 07 NodeJs
详解如何在NodeJS项目中优雅的使用ES6
Apr 22 NodeJs
Nodejs连接mysql并实现增、删、改、查操作的方法详解
Jan 04 NodeJs
nodejs 日志模块winston的使用方法
May 02 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
nodejs使用async模块同步执行的方法
Mar 02 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
nodeJS服务器的创建和重新启动的实现方法
May 12 #NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 #NodeJs
nodejs 日志模块winston的使用方法
May 02 #NodeJs
详解redis在nodejs中的应用
May 02 #NodeJs
nodejs读取并去重excel文件
Apr 22 #NodeJs
nodeJS模块简单用法示例
Apr 21 #NodeJs
NodeJS安装图文教程
Apr 19 #NodeJs
You might like
我的论坛源代码(五)
2006/10/09 PHP
将OICQ数据转成MYSQL数据
2006/10/09 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
让div运动起来 js实现缓动效果
2017/07/06 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
浅析Python多线程下的变量问题
2015/04/28 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
简单了解django缓存方式及配置
2019/07/19 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
创业计划书——互联网商机
2014/01/12 职场文书
酒店总经理助理岗位职责
2014/02/01 职场文书
花坛标语大全
2014/06/30 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
大学开学感言
2015/08/01 职场文书
Django程序的优化技巧
2021/04/29 Python