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 url验证(url-valid)的使用方法
Nov 18 NodeJs
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
Sep 26 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
Mar 21 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
详解使用nodeJs安装Vue-cli
May 17 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
详解redis在nodejs中的应用
May 02 NodeJs
NodeJS加密解密及node-rsa加密解密用法详解
Oct 12 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
Nodejs实现微信分账的示例代码
Jan 19 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里得到前天和昨天的日期的代码
2007/08/16 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
快速入门python学习笔记
2017/12/06 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
python如何定义带参数的装饰器
2018/03/20 Python
python实现Zabbix-API监控
2018/09/17 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
Python猜数字算法题详解
2020/03/01 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
成教毕业生自我鉴定
2013/10/23 职场文书
七年级英语教学反思
2014/01/15 职场文书
文案策划专业自荐信
2014/07/07 职场文书
导航工程专业自荐信
2014/09/02 职场文书
小学大队委竞选口号
2015/12/25 职场文书
担保书怎么写 ?
2019/04/22 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL