二、搭建Apache服务器 模板引擎

1. 案例:搭建简单的Apache服务器

var http = require('http')
var fs = require('fs')var server = http.createServer()var wwwDir = 'D:\\CWork\\node.js黑马程序员\\study_nodejs\\day02\\code\\www'server.on('request', function(req, res) {var url = req.urlfs.readFile('./template.html', function(err, data) {if (err) {res.end('404 Not Found.')}// 1. 如何得到wwwDir目录列表中的文件名称和目录名// 		fs.readdir// 2. 如何将得到的文件名和目录名替换到template.html中// 		2.1 在template.html中需要替换的位置预留一个特殊的标记(^_^)// 		2.2 根据files生成需要的HTML内容// 	只要你 做了这两件事情,这个问题就解决了// 	fs.readdir(wwwDir, function(err, files) {if (err) {return console.log('读取目录不存在')}var content = ''files.forEach(function (item) {// 在 ES6的 ``字符串中,可以使用${}来引用变量content += `<tr><td data-value="apple/"><a class="icon dir" href="/D:\\CWork\\node.js黑马程序员\\study_nodejs\\day02\\code\\www">${item}/</a></td><td class="detailsColumn" data-value="0"></td><td class="detailsColumn" data-value="1509589967">2017/11/2 上午10:32:47</td></tr>`})data = data.toString()data = data.replace('^_^',content)res.end(data)console.log(files)});});})// 3. 绑定端口号,启动服务 
server.listen(3000, function() {console.log('Server running...')
})

在这里插入图片描述

2. 模板引擎的基本使用

需要安装 art-template
cmd中执行命令 npm install art-template --save
在这里插入图片描述

官网下载模板引擎

2.1 在浏览器中使用art-template模板引擎

在这里插入图片描述

<!DOCTYPE html>
<html>
<head><title></title>
</head>
<body><!-- 注意: 在浏览器中需要引用template-web.js文件 --><script src="node_modules/art-template/lib/template-web.js"></script><script type="text/template" id="tpl"><!DOCTYPE html><html><head><title></title></head><body><p>hello {{ name }}</p><p>我今年{{ age }}岁了</p><p>我喜欢: {{each hobbies}} {{$value}} {{/each}}</p></body></html></script><script>var ret = template('tpl', {name: 'Jack',age: 18,hobbies: ['写代码','玩游戏','唱歌']})console.log(ret)</script>
</body>
</html>

2.2 在node中使用art-template模板引擎

在这里插入图片描述
在这里插入图片描述

3. Apache案例升级版:加入模板引擎

var http = require('http')
var fs = require('fs')
var template = require('art-template')var server = http.createServer()var wwwDir = 'D:\\CWork\\node.js黑马程序员\\study_nodejs\\day02\\code\\www'server.on('request', function(req, res) {var url = req.urlfs.readFile('./template-apache.html', function(err, data) {if (err) {res.end('404 Not Found.')}// 1. 如何得到wwwDir目录列表中的文件名称和目录名// 		fs.readdir// 2. 如何将得到的文件名和目录名替换到template.html中// 		2.1 在template.html中需要替换的位置预留一个特殊的标记(^_^)// 		2.2 根据files生成需要的HTML内容// 	只要你 做了这两件事情,这个问题就解决了////fs.readdir(wwwDir, function(err, files) {if (err) {return res.end('找不到文件目录')}// 这里只需要使用模板引擎解析替换data中的模板字符串就可以了// 数据就是files// 然后去你的template.html文件中编写你的模板语法就可以了var htmlStr =  template.render(data.toString(), {title: '哈蛤',files: files,wwwDir: wwwDir})res.end(htmlStr)});});});// 3. 绑定端口号,启动服务 
server.listen(3000, function() {console.log('Server running...')
})

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三、案例:留言板 url.parse()

1. url.parse()的使用 2. 留言板案例 index.html: <!DOCTYPE html> <!-- saved from url(0027)http://192.168.150.76:3000/ --> <html lang"en"><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8…

一、AJAX学习笔记——原生AJAX (ajax简介、XML简介、ajax优缺点、ajax的使用)

第 1 章&#xff1a;原生 AJAX 1.1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML&#xff0c;就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求&#xff0c; 最大的优势&#xff1a;无刷新获取数据。 AJAX 不是新的编程语言&#xff0c;而是…

App安全之网络传输安全

移动端App安全如果按CS结构来划分的话&#xff0c;主要涉及客户端本身数据安全&#xff0c;Client到Server网络传输的安全&#xff0c;客户端本身安全又包括代码安全和数据存储安全。所以当我们谈论App安全问题的时候一般来说在以下三类范畴当中。 App代码安全&#xff0c;包括…

二、nodemon-Node.js 监控工具

nodemon-Node.js 监控工具 https://www.npmjs.com/package/nodemon 这个工具在我们改变了服务端代码时&#xff0c;会自动重启服务器&#xff0c;不需要我们再手动去重启服务器了&#xff0c;方面我们后面调试代码&#xff01; 1. 安装 node &#xff1a;http://nodejs.cn/d…

利用动态规划(DP)解决 Coin Change 问题

问题来源 这是Hackerrank上的一个比较有意思的问题&#xff0c;详见下面的链接&#xff1a; https://www.hackerrank.com/challenges/ctci-coin-change 问题简述 给定m个不同面额的硬币&#xff0c;C{c0, c1, c2…cm-1}&#xff0c;找到共有几种不同的组合可以使得数额为n的…

jquery datatable设置垂直滚动后,表头(th)错位问题

jquery datatable设置垂直滚动后&#xff0c;表头(th)错位问题 问题描述&#xff1a; 我在datatable里设置&#xff1a;”scrollY”: ‘300px’,垂直滚动属性后&#xff0c;表头的宽度就会错位&#xff0c;代码如下&#xff1a; <!-- HTML代码 --> <table id"dem…

三、解决ie缓存问题

解决 IE 缓存问题 问题&#xff1a;在一些浏览器中(IE),由于缓存机制的存在&#xff0c;ajax 只会发送的第一次请求&#xff0c;剩余多次请求不会在发送给浏览器而是直接加载缓存中的数据。 在谷歌浏览器中&#xff0c;修改了服务器代码&#xff0c;重新发送请求时&#xff0…

imageNamed和imageWithContentsOfFile-无法加载图片的问题

问题描述 图片资源放在Assets.xcassets中&#xff0c;分别用UIImage的类方法imageNamed和imageWithContentsOfFile获取图片对象&#xff0c;但发生奇怪的情况&#xff0c;前者获取到图片对象&#xff0c;后者结果为nil。代码如下&#xff1a; 1.通过UIImage的类方法imageNamed:…

LeetCode 309: 一个很清晰的DP解题思路

问题来源 题目来源链接见下方&#xff1a; https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/description/ 问题简述&#xff1a; 假如有一个 i 个元素的数组&#xff0c;数组的每个元素表示了第 i 天某只股票的价格&#xff0c;设计一种算法来…

五、手动取消ajax请求 解决重复发送请求问题

server.js: // 1. 引入express const express require(express)// 2. 创建应用对象 const app express()// 3. 创建路由规则 app.get(/server, (request, response) > {// 设置响应头 设置允许跨域response.setHeader(Access-Control-Allow-Origin, *)// 设置响应体respo…

linux ps命令详解

ps命令用于监测进程的工作情况。进程是正在运行的程序&#xff0c;一直处于动态变化中&#xff0c;而ps命令所显示的进程工作状态时瞬间的。 使用方式&#xff1a;ps[options][-help] 常用参数&#xff1a; -A &#xff1a;显示所有进程 -a&#xff1a;显示一个终端的所有进程。…

用多元线性回归预测网页访问量(R语言)

前言 该问题来源于《机器学习:实用案例解析》中的第5章。在书中&#xff0c;已经对该问题给出了一种解决方案&#xff0c;但是我觉得写的还是太简略了一些&#xff0c;没有把考虑问题的整个思路给写出来&#xff0c;所以&#xff0c;在这里给出我的一些想法。 问题简述 我们…

六、jQuery 中的 AJAX 跨域问题

第 2 章&#xff1a;jQuery 中的 AJAX 官方中文文档&#xff1a;https://jquery.cuishifeng.cn/jQuery.Ajax.html 2.1 get 请求 $.get(url, [data], [callback], [type]) url:请求的 URL 地址。data:请求携带的参数。callback:载入成功时回调函数。type:设置返回内容格式&a…

常用的几种编程语言的介绍

编程语言&#xff08;programming language&#xff09;&#xff0c;来自百度百科的解释为&#xff1a;编程语言是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧&#xff0c;用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据&a…

三门问题(Monty Hall problem)背后的贝叶斯理论

文章目录1 前言2 问题简介3 直观的解释4 贝叶斯理论的解释1 前言 三门问题可以说有着各种版本的解释&#xff0c;但我看了几个版本&#xff0c;觉得没有把其中的条件说清楚&#xff0c;所以还是决定按照自己的理解记录一下这个特别有意思的问题。 2 问题简介 三门问题&#…

一、在vue项目中使用mock.js(详解)

步骤1.搭建测试项目 步骤1.1创建项目 命令&#xff1a; vue create mock-demo 步骤1.2安装依赖 命令&#xff1a; #使用axios发送ajax cnpm install axios--save #使用mockjs产生随机数据 cnpm install mockjs--save-dev #使用json5解决ison文件&#xff0c;无法添加注释…

二、在jQuery中使用mockjs

在jQuery项目中使用mock.js 步骤1.搭建项目 步骤1.1创建项目 新建文件夹jquery-mock-demo 步骤1.2新建index.html&#xff0c;引入jquery.js文件和mock.js <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title&g…

Android 中如何计算 App 的启动时间?

&#xff08;转载&#xff09; 已知的两种方法貌似可以获取&#xff0c;但是感觉结果不准确&#xff1a;一种是&#xff0c;adb shell am start -w packagename/activity,这个可以得到两个值&#xff0c;ThisTime和TotalTime&#xff0c;不知道两个有什么区别&#xff0c;而且与…

项目实战:Express实现学生管理系统(CRUD)

一、起步 初始化 npm init -y 生成package.json文件 模板处理 cnpm install express --save cnpm install bootstrap --savenpm install --save art-template npm install --save express-art-template//两个一起安装 npm i --save art-template express-art-template文件目录…