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 模块开发及发布详解分享
Mar 07 NodeJs
nodejs win7下安装方法
May 24 NodeJs
轻松创建nodejs服务器(7):阻塞操作的实现
Dec 18 NodeJs
nodejs 中模拟实现 emmiter 自定义事件
Feb 22 NodeJs
NodeJS的Promise的用法解析
May 05 NodeJs
浅析Nodejs npm常用命令
Jun 14 NodeJs
windows 下安装nodejs 环境变量设置
Feb 02 NodeJs
Nodejs高扩展性的模板引擎 functmpl简介
Feb 13 NodeJs
nodejs制作爬虫实现批量下载图片
May 19 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
Nodejs 复制文件/文件夹的方法
Aug 24 NodeJs
nodejs简单抓包工具使用详解
Aug 23 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
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
PDO::errorCode讲解
2019/01/28 PHP
关于文本限制字数的js代码
2007/04/02 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
玩转python爬虫之正则表达式
2016/02/17 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
python 获取url中的参数列表实例
2018/12/18 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
html5开发之viewport使用
2013/10/17 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
工程师自我评价怎么写
2013/09/19 职场文书
成教毕业生自我鉴定
2013/10/23 职场文书
如何写好升职自荐信
2014/01/06 职场文书
运动会开幕式邀请函
2014/01/22 职场文书
梅花魂教学反思
2014/04/25 职场文书
运动会口号16字
2014/06/07 职场文书
2014年远程教育工作总结
2014/12/09 职场文书
初中差生评语
2014/12/29 职场文书
教育教学读书笔记
2015/07/02 职场文书
初中数学教学反思范文
2016/02/17 职场文书
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js