【问题标题】:deleting MongoDB entry when URL is visited - node.js访问 URL 时删除 MongoDB 条目 - node.js
【发布时间】:2014-11-26 16:46:16
【问题描述】:

我正在使用 node.js 和 express 为一个项目制作一个简单的 Twitter 克隆,并使用 MongoDB 存储推文。

我正在尝试为推文实现删除功能。用户的个人资料显示了他们所有的推文,我希望在用户点击删除的每条推文下放置一个小按钮或链接。

所以,我认为最简单的方法是为每条推文指定一个“删除 URL”,例如 ..../profile/delete/[mongoDB object id here]。然后在节点中,假设当路由器收到这样一个 URL 的获取请求时,从数据库中删除具有指定 id 的对象。

我听说你可以使用正则表达式来匹配和解析 URL 来做到这一点,但我真的找不到任何关于如何做的资源。那么如何编写正则表达式来匹配这些 URL,然后解析 URL 以获取对象 ID?或者有更好的方法吗?

【问题讨论】:

  • 我会使用expressjs 来设置一个超级快速/简单的 REST api。

标签: javascript html node.js mongodb express


【解决方案1】:

我不确定你想在路由中使用正则表达式做什么,但让我为你写一个案例,可能会解决这个问题:

  • 首先在 express 中定义一个路由,比如说“profile/tweet/delete/:id”
  • 仅限制该路由,删除 http 动词
  • 执行 request.params.id 以获取 id

类似:

exports.deleteTweet = function(req,res){
    if(req.params.tweetId !==null || req.params.tweetId!==undefined){
        //assuming mongoose here
        TweetSchema.remove({_id:req.params.TweetId},function(err){
            res.send(200);
        });
    }
};

路线:

app.route('/profile/tweet/:tweetId').delete(myController.deleteTweet);

【讨论】:

    猜你喜欢
    • 2019-05-05
    • 2022-01-14
    • 1970-01-01
    • 2012-07-17
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多