一、链接数据库
1、输入Ctrl+C终止项目服务器运行
2、安装mongoose 输入命令 npm install mongoose -S
3、安装后重新启动项目 npm start
二、创建跟数据库关联的模型层
1、在项目目录下 jianshu 新建 model/WenZhangModel.js 文件
2、输入代码
const mongoose = require('mongoose');
const schema = mongoose.Schema({
title: String, // 文章标题
content: String, // 文章内容
star: Number, // 点赞量
browser: Number // 浏览量
}, { collection: 'wenzhang' })
// 导出对象 object 开放给路由使用
const object = module.exports = mongoose.model('wenzhang', schema);
三、创建路由
1、在项目jianshu下新建路由文件 routes/wenzhang.js
2、输入路由代码
var express = require('express');
var router = express.Router();
// 引用模型层中的 文章的对象
let Model = require('./../model/WenzhangModel')
router.get('/', (req, res) => {
// 3、查询数据库中 所有文章 并显示在wenzhang.hbs页面上
Model.find((err, listresult) => {
res.render('wenzhang', { list: listresult })
})
})
// 添加文章路由
router.get('/add', (req, res) => {
// 1、根据模型层的样式创建一个文章对象 文章对象的内容是 html页面传递过来
let object = new Model(req.query)
// 2、对象保存在数据库中
object.save((err, result) => {
if (err) throw err
console.log('添加成功');
// 3、查询数据库中 所有文章 并显示在wenzhang.hbs页面上
Model.find((err, listresult) => {
res.render('wenzhang', { list: listresult })
})
})
});
// 删除文章路由
router.get('/delete', (req, res) => {
// 1、根据模型层的样式创建一个文章对象 文章对象的内容是 html页面传递过来
let where = { _id: require('mongodb').ObjectId(req.query._id) }
// 2、对象保存在数据库中
Model.deleteOne(where, (err, result) => {
if (err) throw err
console.log('删除成功');
// 3、查询数据库中 所有文章 并显示在wenzhang.hbs页面上
Model.find((err, listresult) => {
res.render('wenzhang', { list: listresult })
})
})
});
module.exports = router;
3、在app.js中关联wenzhang.js 路由
var wenzhangRouter = require('./routes/wenzhang');
app.use('/', wenzhangRouter);
四、创建界面
1、在views文件夹中 新建 wenzhang.hbs
<ul>
{{#each list}}
<li>
<h3>{{this.title}}</h3>
<p>{{this.content}}</p>
<div>
点赞量:<span>{{this.star}}</span>
浏览量:<span>{{this.browser}}</span>
</div>
</li>
{{/each}}
</ul>
2、添加文章代码
<h3>发表文章功能</h3>
<form action="/add" method="get">
<input type="text" name="title"><br/>
<textarea name="content" id="" cols="30" rows="10"></textarea><br/>
<input type="submit" value="发表">
</form>
3、删除功能代码
<form action="/delete" method="get">
<input type="hidden" name="_id" value="{{this._id}}">
<input type="submit" value="删除">
</form>
五、访问网站 http://127.0.0.1:3000