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访问ActiveX对象,以操作Access数据库为例。
Dec 15 NodeJs
nodejs中实现阻塞实例
Mar 24 NodeJs
nodejs创建web服务器之hello world程序
Aug 20 NodeJs
Nodejs实战心得之eventproxy模块控制并发
Oct 27 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
详解nodejs实现本地上传图片并预览功能(express4.0+)
Jun 28 NodeJs
nodejs取得当前执行路径的方法
May 13 NodeJs
nodejs的路径问题的解决
Jun 30 NodeJs
nodejs微信开发之自动回复的实现
Mar 17 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
使用php计算排列组合的方法
2013/11/13 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
js实现动态时钟
2020/03/12 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
python实现AES加密解密
2019/03/28 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
经济信息管理专业大学生求职信
2013/09/27 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
服装设计专业求职信
2014/06/16 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
六年级小学生评语
2014/12/26 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python