Node.js之使用express重写留言板小案例

 

express在GetHub上的地址

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')

  

posted @ 2021-05-21 23:39  1/2的领土  阅读(199)  评论(0)    收藏  举报