Node.js之使用express重写留言板小案例
1、使用express框架之后代码变得更加简洁,代码只有提供服务的js有所变动,其余的代码保持不变,需要重新加载express模块
var comments = [{ name: '张珊', message: '今天天气好晴朗,处处好风光', dataTime: '2021年05月19日22:58:30' }, { name: '李四', message: '今天天气好晴朗,处处好风光', dataTime: '2021年05月19日22:58:30' }, { name: '王五', message: '今天天气好晴朗,处处好风光', dataTime: '2021年05月19日22:58:30' }, { name: '赵柳', message: '今天天气好晴朗,处处好风光', dataTime: '2021年05月19日22:58:30' }, { name: '田七', message: '今天天气好晴朗,处处好风光', dataTime: '2021年05月19日22:58:30' }, { name: '小八', message: '今天天气好晴朗,处处好风光', dataTime: '2021年05月19日22:58:30' } ] var template = require('art-template'); var express = require('express'); var fs = require('fs'); var app = express(); app.use('/public', express.static('./public/')); app.get('/', function(req, res) { fs.readFile('./view/index.html', function(err, data) { if (err) { return res.end('404 Not Found.'); } data = data.toString(); var htmlStr = template.render(data, { file: comments }); // res.end(htmlStr); res.send(htmlStr); }); // res.send('hello 我是about!!'); }); app.get('/public', function(req, res) { fs.readFile('./public/start.html', function(err, data) { if (err) { return res.send('404 Not Found.'); } res.end(data); }); }); app.get('/addMeg', function(req, res) { fs.readFile('./view/index.html', function(err, data) { if (err) { return res.end('404 Not Found.'); } // console.log(req.query); var userData = req.query; var date = new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; month = getTow(month); var day = date.getDate(); day = getTow(day); var hour = date.getHours(); hour = getTow(hour); var minute = date.getMinutes(); minute = getTow(minute); var second = date.getSeconds(); second = getTow(second); var dataTime = year + '年' + month + '月' + day + '日' + hour + ':' + minute + ':' + second; userData.dataTime = dataTime; comments.unshift(userData); res.statusCode = 302; res.setHeader('Location','/'); res.end(); }); }); function getTow(data) { if (data < 10) { data = '0' + data; } return data; } app.listen(3000, function() { console.log('app is running at port 30000'); });
结果与上一个一样。
在Express中配置使用art-templete
模板引擎
- art-template官方文档
- 在node中,有很多第三方模板引擎都可以使用,不是只有
art-template
- 还有ejs,jade(pug),handlebars,nunjucks
安装:
npm install --save art-template npm install --save express-art-template //两个一起安装 npm i --save art-template express-art-template
配置:
app.engine('html', require('express-art-template'));
使用:
app.get('/',function(req,res){
// express默认会去views目录找index.html res.render('index.html',{ title:'hello world'
}); })
如果希望修改默认的views
视图渲染存储目录,可以:
// 第一个参数views千万不要写错 app.set('views',目录路径)
//如将views目录修改为public
app.set('views','public')
打下了1/2的江山