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框架Express的模板视图机制分析
Jul 19 NodeJs
Nodejs如何复制文件
Mar 09 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
Dec 30 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 NodeJs
详解nodejs微信公众号开发——3.封装消息响应模块
Apr 10 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
nodejs检测因特网是否断开的解决方案
Apr 17 NodeJs
typescript nodejs 依赖注入实现方法代码详解
Jul 21 NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 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中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
关于jQuery中的end()使用方法
2011/07/10 Javascript
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
Python实现简单的语音识别系统
2017/12/13 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
学习python需要有编程基础吗
2020/06/02 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
python实现学生信息管理系统源码
2021/02/22 Python
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
2014年医院工作总结
2014/11/20 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers