使用mongolab的Expressjs Creud数据库

时间:2012-10-04 19:32:43

标签: node.js express mlab

我想找到一个工作crud w expressjs和一个没有被淘汰的数据库的正常例子。

真的让我说出为什么我不回去了铁路....

我搜索了网络论坛手册视频没有运气.....那么难以表达数据集整合吗?

任何人都可以与社区分享明确的mongolab示例crud ??

1 个答案:

答案 0 :(得分:2)

将所有数据库内容放入一个可以在不同项目中轻松重用的单独文件是一种很好的做法。您的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);

你只需要替换&lt;&gt;您的凭据字段。然后在你的主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 - &gt; UPDATEDELGET - &gt; 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)
}

创建应用程序很有趣!