
二、搭建Apache服务器 & 模板引擎
发布日期:2021-05-08 02:36:03
浏览次数:26
分类:原创文章
本文共 3182 字,大约阅读时间需要 10 分钟。
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.url fs.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.url fs.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...')})
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月16日 13时51分15秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java注释
2021-05-08
C++ 函数重载
2021-05-08
使用mybatis-generator生成底层
2021-05-08
Mybatis【5】-- Mybatis多种增删改查那些你会了么?
2021-05-08
计算输入的一句英文语句中单词数
2021-05-08
lvs+keepalive构建高可用集群
2021-05-08
6 个 Linux 运维典型问题
2021-05-08
取消vim打开文件全是黄色方法
2021-05-08
一个系统部署多个tomcat实例
2021-05-08
HP服务器设置iLO
2021-05-08
从头实现一个WPF条形图
2021-05-08
使用QT实现一个简单的登陆对话框(纯代码实现C++)
2021-05-08
QT :warning LNK4042: 对象被多次指定;已忽略多余的指定
2021-05-08
GLFW 源码 下载-编译-使用/GLAD配置
2021-05-08
针对单个网站的渗透思路
2021-05-08
Typescript 学习笔记六:接口
2021-05-08
02、MySQL—数据库基本操作
2021-05-08
OpenJDK1.8.0 源码解析————HashMap的实现(一)
2021-05-08
MySQL-时区导致的时间前后端不一致
2021-05-08