账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    使用nodejs 删除上传到mongodb数据库的评论信息包括图片时报错
    • 2019-06-20 00:00
    • 10
    19
    0

    使用nodejs 删除上传到mongodb数据库的评论信息包括图片时报错如下
    Cannot GET /discuss/delete/5d0b073b86195a6698a900fc

    remove.js

    const express = require('express');
    const router = express.Router();
    const fs = require('fs');
    const path = require('path');
    const formidable = require('formidable');
    const discuss = require('../models/discuss');
    const login=require('../middlewares/login')
    
    router.get('/delete/:id', login,function (req, res) {
        var id=req.query.id;
        discuss.findByIdAndRemove(req.params.id, function (err) {
            if (err) throw err;
            console.log("数据库删除成功");
            //删除相应的图片 
            fs.unlink(path.join(__dirname, "../", 'uploads', req.query.img), function (err) {
                if (err) throw err;
                console.log("图片删除成功");
            });
            res.redirect("/writdiscuss/discuss");
        })
    })
    
    
    
    module.exports = router;

    remove.ejs

    <%- include ./common/header.ejs %>
    <!-- 头部 -->
    <div class="header" style="left: 0px;">
    
        <!-- <div class="serch">
                    <input type="text" placeholder="城市名/酒店名">
                    <button class="serchbtn">搜索</button>
                </div> -->
    
        <div class="rigth">
            <div class="register">
                <a href="/register">注册</a>
            </div>
            <div class="login">
                <a href="/login">登录</a>
            </div>
            <div class="out">
                <a href="">退出</a>
            </div>
        </div>
    
        <div class="down">
            <div class="nav">
                <ul>
                    <li><a href="/home">首页</a></li>
                    <li><a href="">酒店</a></li>
                    <li><a href="/city">目的地</a></li>
                    <li><a href="/my" style="color: #ffff">我的</a></li>
                </ul>
            </div>
        </div>
    </div>
    
    <div class="centen">
        <div class="centen-mbx">
            <h2 style="margin-left: 93px;margin-top: 23px;font-size: 17px;">我的 >> >> 我的评论</h2>
        </div>
        <div class="table-responsive">
                <table class="table table-striped ">
                    <tbody>
                       <% for(var i=0; i<arr.length;i++){ %>
                       <tr>
                           <td><%=arr[i].content%></td>
                           <td><img src="<%=arr[i].pic%>"></td>
                           <td class="publishtime"><%=moment(arr[i].publishAt).format('YYYY/MM/DD HH:mm:ss')%></td>
                     
                        <td class="chaoz">
                            <!-- <a href="/discuss/update/<%=arr[i].id%>" class="btn-success">修改</a> -->
                            <a href="/discuss/delete/<%=arr[i]._id%>?img=<%=arr[i].pic%>" >删除</a>
                        </td>       
                       </tr>
                    <% }%>
                    </tbody>
                </table>
        </div>
    
    </div>
    
    <%- include ./common/fooder.ejs %>
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 在Node.js中删除MongoDB数据库中的评论信息,可以使用MongoDB的游标和JavaScript的异步特性。以下是一个基本的示例:

      首先,你需要安装Node.js和MongoDB。你可以在Node.js的官方网站上下载适合你的操作系统的安装包。

      然后,你需要在你的Node.js项目中创建一个数据库和一个集合,用于存储评论信息。例如,你可以创建一个名为评论的集合,其中包含一个名为“content”和一个名为“user”的字段。

      以下是一个基本的示例:

      ```javascript const MongoClient = require('mongodb').MongoClient; const uri = 'mongodb://localhost:27017'; const client = new MongoClient(uri);

      client.connect(function(err) { if (err) throw err; console.log("Connected successfully");

      const db = client.db('your_database_name');
      const collection = db.collection('your_collection_name');
      
      collection.removeMany({
          $场景: { $text: { $search: "your_text_string" } }
      }, function(err, res) {
          if (err) throw err;
          console.log("评论信息已成功删除");
      });
      

      }); ```

      在这个示例中,我们首先创建了一个MongoDB客户端,然后连接到我们的数据库和集合。然后,我们使用removeMany方法删除所有包含特定文本字符串的评论。

      请注意,你需要将'your_database_name''your_collection_name''your_text_string'替换为你的实际数据库名、集合名和文本字符串。

      此外,如果你的评论信息包含图片,你可能需要使用不同的方法来删除它们。例如,你可能需要首先删除图片,然后删除评论信息。你可以使用removeOne方法来删除一个文档,然后使用removeMany方法来删除所有包含该文档的集合中的文档。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部