Node.js新聞添加的小案例
創(chuàng)建文件
- save文件夾
- admin.html
- shownews.ejs
admin.thml
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style media="screen">
form{
width: 800px;
margin: 0 auto;
border: 1px solid #4c4c4c;
padding: 10px;
}
</style>
</head>
<body>
<h1>新聞后臺</h1>
<form class="" action="/addnews" method="post">
<label for="titile">新聞標(biāo)題</label>
<input type="text" name="title" value="" id="title">
<br>
<label for="pic">新聞圖片</label>
<input type="text" name="pic" value="" id="pic">
<br>
<label for="newssrc">新聞來源</label>
<input type="text" name="newssrc" value="" id="newssrc">
<br>
<label for="newstime">新聞時間</label>
<input type="text" name="newstime" value="" id="newstime">
<br>
<input type="submit" name="" value="提交新聞">
</form>
</body>
</html>
shownews.ejs
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>新聞</title>
</head>
<body>
<ul>
<% for(var i=0; i<newslist.length; i++){ %>
<li>
<h1><%= newslist[i].title %></h1>
<img src="<%= newslist[i].pic %>" alt="">
<p><%= newslist[i].newstime %></p>
<p><%= newslist[i].newssrc %></p>
</li>
<% } %>
</ul>
</body>
</html>
app.js
var express = require('express');
var app = express();
var request = require('request');
var bodyParser = require('body-parser');
var fs = require('fs');//文件的讀寫
app.use(express.static('./public/'));
app.set('views','./views');
app.set('view engine','ejs');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
//添加新聞
app.post('/addnews', function (req,res) {
console.log(req.body);
fs.readFile('./save/news.json', function (err,data) {
var newslist;
if(data.toString() === ''){
newslist = [];
}else{
newslist = JSON.parse(data);
}
var news = {};
news.title = req.body.title;
news.pic = req.body.pic;
news.newssrc = req.body.newssrc;
news.newstime = req.body.newstime;
newslist.push(news);
var str = JSON.stringify(newslist);
fs.writeFile('./save/news.json',str,'UTF-8');
res.send('添加成功');
});
});
app.get("/news", function (req, res) {
fs.readFile('./save/news.json', function (err,data) {
var list = JSON.parse(data);
res.render('shownews',{newslist:list});
});
});
var server = app.listen(3000,function(){
console.log("server 3000 running!");
});
注意:相關(guān)的依賴包要導(dǎo)入
- "body-parser": "^1.16.1",
- "ejs": "^2.5.5",
- "express": "^4.14.1",
- "request": "^2.79.0"