一、链接数据库
1、输入Ctrl+C终止项目服务器运行
安装mongoose 输入命令 npm install mongoose -S
安装后重新启动项目 npm start
2、在app.js中输入以下代码 链接数据库
var mongoose = require("mongoose");
var url = "mongodb://127.0.0.1:27017/jianshu"; // 本地数据库地址
mongoose.connect(url,{useNewUrlParser: true, useUnifiedTopology: true},(err,db)=>{
if(err)
console.log("连接数据库失败"+err)
else
console.log("连接数据库成功")
})
二、创建跟数据库关联的模型层
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)=>{
// 查询数据库中 所有文章 并显示在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})
})
})
});
module.exports = router
3、在spp.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" cols="30" rows="10"></textarea> <br/>
<input type="submit" value="发表">
</form>
五、访问网站 http://127.0.0.1:3000/