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 的 c++ module 链接到 OpenSSL
Aug 03 NodeJs
Nodejs关于gzip/deflate压缩详解
Mar 04 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
Mar 21 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 NodeJs
nodejs连接mongodb数据库实现增删改查
Dec 01 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
Nodejs中的JWT和Session的使用
Aug 21 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 NodeJs
用Nodejs实现在终端中炒股的实现
Oct 18 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函数常用用法小结
2010/02/08 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
最佳JS代码编写的14条技巧
2011/01/09 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
Python Tkinter基础控件用法
2014/09/03 Python
Python fileinput模块使用介绍
2014/11/30 Python
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
python中pyplot基础图标函数整理
2020/11/10 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
标准导师推荐信(医学类)
2013/10/28 职场文书
在校学生职业规划范文
2014/01/08 职场文书
英文导游欢迎词
2014/01/11 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
后备干部培训方案
2014/05/22 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android