2012-10-04 41 views
0

Im triyng找到一個正常工作的例子crud w expressjs和一個數據庫,它並沒有過時。Expressjs Crew數據庫與蒙哥拉

真的讓我說爲什麼我不回去W¯¯軌道....

我在網上搜索論壇手冊視頻沒有運氣.....難這是expressjs數據庫集成?

任何人都可以分享一個明確的mongolab例子crud?

回答

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); 

你只需要使用您的憑據來替代<>字段。然後在你的主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) 
} 

有創造你的應用程序的樂趣!

+0

你的例子工作!現在我只需要找到一個便攜式處理器,以便用戶識別。知道一本好手冊? – Nonyck

+0

你可以添加這個例子的意見嗎?我遇到res.redirect問題(「/」+ player._id); – Nonyck

+0

改進了我的答案。如果它有幫助,你可能想要接受它! – zemirco