【问题标题】:Expressjs Creud database with mongolabExpressjs Creud 数据库与 mongolab
【发布时间】:2012-10-07 18:59:51
【问题描述】:

我试图找到一个正常的工作 crud w expressjs 示例和一个它没有过时的数据库。

真的让我说出了为什么我不回去……

我搜索了网络论坛手册视频没有运气.....那么难它是 expressjs 数据库集成?

任何人都可以与社区分享一个快速的 mongolab 示例 crud ??

【问题讨论】:

    标签: node.js express mlab


    【解决方案1】:

    最好将所有数据库内容放入一个单独的文件中,以便在不同的项目中轻松重用。您的 db.js 可能如下所示:

    var mongoose = require('mongoose');
    
    var db = mongoose.createConnection("mongodb://<db_user>:<db_password>@ds0<db_port>.mongolab.com:<db_port>/<db_name>");
    
    var playerSchema = new mongoose.Schema({
      name: String,
      tournament: String
    });
    
    exports.Player = db.model("player", playerSchema);
    

    您只需将 字段替换为您的凭据。然后在你的主 app.js 中创建一个用于创建新玩家的路线(POST 方法)。

    var routes = require('./routes');
    app.post("/", routes.createPlayer);
    

    最后在你的routes.js

    var db = require('./db');
    exports.createPlayer = function(req, res) {
      var player = new db.Player();
      player.name = req.body.player_name;
      player.tournament = req.body.tournament;
      player.save(function(err) {
        if (err) {
          console.log(err);
        }
        res.redirect("/" + player._id);
      });
    };
    

    其他方法也是如此(PUT -> UPDATEDELGET -> READ)。对于DELPUT,您必须覆盖客户端表单中的方法(服务器端由methodOverride 中间件自动完成):

    <input type="hidden" name="_method" value="delete"/>
    

    要使用重定向,请将以下内容添加到您的 app.js

    app.get("/:player_id", routes.showPlayer)
    

    和你的routes.js

    exports.showPlayer = function(req, res) {
      res.send('Details about Player ' + req.params.player_id)
    }
    

    享受创建您的应用程序的乐趣!

    【讨论】:

    • 您的示例有效!现在我只需要找到一个视觉处理程序,以便 cna 让用户识别。知道一本好手册??
    • 你能添加这个例子的视图吗?我遇到了 res.redirect("/" + player._id); 的问题
    • 改进了我的回答。如果对你有帮助,不妨采纳!
    猜你喜欢
    • 1970-01-01
    • 2023-03-02
    • 2016-04-16
    • 2016-06-09
    • 1970-01-01
    • 2016-07-13
    • 2014-07-29
    • 1970-01-01
    • 2012-08-18
    相关资源
    最近更新 更多