3、在code/04_templatingEngine目录下执行cp 04-useTemplating_engine.js 04-useTemplating_engine3.js命令,将之前的代码复制一份,并修改如下:
// 用Node.js生成动态页面// 作者:owlman// 时间:2019年07月12日const http = require('http')const fs = require('fs')const template = require('art-template')template.defaults.root = __dirnameclass human {constructor(name, age, sex, items=[]){this.name = namethis.age = agethis.sex = sexthis.items = items}}const server = http.createServer()server.on('request', function(req, res) {const url = req.urllet boy = nullif (url === '/') {boy = new human('凌杰', '37', '男', ['看书', '看电影','旅游'])} else if (url === '/wang') {boy = new human('蔓儿', '25', '女', ['看书', '看电影','写作'])}if (boy === null) {return res.end('<h1>404 页面没找到!</h1>')}fs.readFile('./extendTpl.htm', function(err, data) {if ( err !== null ) {return res.end('<h1>404 没找到模版文件!</h1>')}const strHtml = template.render(data.toString(), {name : boy.name,age : boy.age,sex : boy.sex,items: boy.items})res.end(strHtml)})})server.listen(8080, function(){console.log('请访问http://localhost:8080/,按Ctrl+C终止服务!')})
4、保存所有文件后,在code/04_templatingEngine目录下执行node 04-useTemplating_engine3.js命令,然后打开浏览器并访问http://localhost:8080,就会看到与之前相同的页面 。
示例5. Web 表单处理这一部分示例将致力于演示用 Node.js 处理 Web 表单,我们将会分别示范如何用get和post两种方法来处理表单的请求 。首先,我们要在code目录下执行mkdir 05_webForm命令来创建用于存放这一组示例的目录 。
1. get 方法先用一个信息查询程序来演示一下如何处理使用get方法来发送请求的表单 。首先,在code/05_webForm目录下执行mkdir get_form命令,并执行以下步骤:
在code/05_webForm/get_form目录下执行npm install art-template命令,将art-template安装到当前示例项目中 。在code/05_webForm/get_form目录下执行touch index.htm,创建一个模版文件,具体如下: <!DOCTYPE html><html lang="zh-cn"><head><meta charset="UTF-8"><title>个人信息查询</title></head><body><h1>个人信息查询</h1><form action="/query" method="GET"><label for="message">请输入要查询的姓名:</label><input type="text" name="qname" /><input type="submit" value=https://www.isolves.com/it/wlyx/fwq/2020-08-31/"查询" />
{{ if name }}
{{ else if query_error }}姓名: {{ name }} 年龄: {{ age }} 性别: {{ sex }} 爱好: {{ each items }} {{ $value }} {{ /each }} 没有找到相关信息!
{{ /if }}