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 相关文章推荐
windows系统下简单nodejs安装及环境配置
Jan 08 NodeJs
nodejs之请求路由概述
Jul 05 NodeJs
轻松创建nodejs服务器(6):作出响应
Dec 18 NodeJs
nodeJs链接Mysql做增删改查的简单操作
Feb 04 NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
NodeJS安装图文教程
Apr 19 NodeJs
webstorm中配置nodejs环境及npm的实例
May 15 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
nodejs微信开发之自动回复的实现
Mar 17 NodeJs
nodejs分离html文件里面的js和css的方法
Apr 09 NodeJs
nodejs中的异步编程知识点详解
Jan 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
php面向对象全攻略 (九)访问类型
2009/09/30 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
js类 from qq
2006/11/13 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
浅谈Javascript变量作用域问题
2014/12/16 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
vue实现div单选多选功能
2020/07/16 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
numpy.random.seed()的使用实例解析
2018/02/03 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
Python猴子补丁知识点总结
2020/01/05 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
致100米运动员广播稿
2014/02/14 职场文书
家长学校培训材料
2014/08/20 职场文书
化工实习心得体会
2014/09/09 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
总经理岗位职责范本
2015/04/01 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python
无线电通信名词解释
2022/02/18 无线电
spring注解 @PropertySource配置数据源全流程
2022/03/25 Java/Android
Apache Hudi 加速传统的批处理模式
2022/04/24 Servers