nodejs+mongodb+express简书中文章添加功能与删除功能

一、链接数据库

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容