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 npm install全局安装和本地安装的区别
Jun 05 NodeJs
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
Aug 03 NodeJs
Nodejs极简入门教程(三):进程
Oct 27 NodeJs
Nodejs学习笔记之入门篇
Apr 16 NodeJs
nodejs通过phantomjs实现下载网页
May 04 NodeJs
nodejs实现获取当前url地址及url各种参数值
Jun 25 NodeJs
详解nodejs模板引擎制作
Jun 14 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
详解从NodeJS搭建中间层再谈前后端分离
Nov 13 NodeJs
nodejs基础之常用工具模块util用法分析
Dec 26 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 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
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
php随机抽奖实例分析
2015/03/04 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
PHP文件操作实例总结
2016/09/27 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
JavaScript修改css样式style动态改变元素样式
2013/12/16 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
2016/06/12 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
python生成指定长度的随机数密码
2014/01/23 Python
Python的函数嵌套的使用方法
2014/01/24 Python
使用Python脚本操作MongoDB的教程
2015/04/16 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
python反编译学习之字节码详解
2019/05/19 Python
HTML的form表单和django的form表单
2019/07/25 Python
Python bisect模块原理及常见实例
2020/06/17 Python
如何利用Python 进行边缘检测
2020/10/14 Python
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
韩国11街:11STREET
2018/03/27 全球购物
会计自我鉴定
2013/11/02 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
三八妇女节标语
2014/10/09 职场文书
学生会招新宣传语
2015/07/13 职场文书
学校就业保障协议书
2019/06/24 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python
Java Spring读取和存储详细操作
2022/08/05 Java/Android
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技