2011-11-24 47 views
0

我目前在我的heroku環境中有node.js,express和mongodb。讀取來自Node.js的用戶輸入並將其保存在MongoDB中

我想知道的是如何獲得用戶的輸入(例如:他們正在註冊一個帳戶,並且正在輸入他們的用戶名和密碼)並將其保存在mongodb中,然後稍後獲取該信息(例如:他們正在登錄)。

我是否從.js腳本連接到mongodb,或者它是如何工作的?

回答

0

您是否試圖利用Node.js作爲後端服務器來處理數據? node.js會渲染HTML頁面嗎?

假設您只是想使用Node.js插入或查找數據,請查看Express

或者,您可以使用url庫來處理傳入請求,然後使用庫提供的方法(如node-mongodb-native)將它們傳遞給Mongo。

node-mongodb-native驅動程序爲您提供了MongoDB的所有核心功能,但根據應用程序的複雜程度,使用也可用於數據建模的框架或mongodb庫可能更有意義。

看看這個Node modules list看看所有的選項。

至於架構,一個例子是POST用戶憑證Node.js分析他們並連接到MongoDB拉用戶的帳戶信息。 MongoDB返回Node.js找到的數據,並且Node服務器以JSON格式輸出用戶帳戶信息。我不知道如果這是你問的是什麼,但它是一個簡單的方法,這將是很容易建立,一旦你熟悉了回調和所有其他的美味意大利麪的流動;)


這裏有一個小的CoffeeScript從我使用的Node.js應用程序代碼段連接到蒙戈並啓動Node.js的服務器:

db = new mongo.Db('tracker', new mongo.Server('127.0.0.1', 27017, {auto_reconnect: true})) 

# Open the connections: 
db.open (db_error, database) -> 

    console.error "Unable to open connection to database 'tracker': #{db_error}" if db_error 

    # Launch server on port 8080: 
    http.createServer(onRequest).listen 8080, '127.0.0.1' 

    # Close the connection if the server is stopped: 
    db.close() 
+0

好了,頁面由快遞像註冊頁面跑是app.get( '/註冊',函數());我需要創建一個新的腳本來完成mongodb連接,並且需要Express獲取數據並將其發送給mongodb? – Ator

+0

你可以,但你不**有**。你可以像上面那樣把所有'app.get(...)'邏輯放在'db.open'中。我處理請求的代碼位於由'http.createServer()'調用的'onRequest'函數內,該函數位於應用程序的單獨部分中。查看[The Node Beginner Book](http://www.nodebeginner.org/),瞭解Node.js的原理。一旦你瞭解了回調的本質,一切都開始有意義。 – Marco

0

您可以檢查出Mongoosemongoskin。他們會通過減少回調的數量和解開代碼來讓你的生活更輕鬆。

一個簡單的例子與mongoskin:

var mongo = require('mongoskin'); 
var db = mongo.db('localhost:27017/test?auto_reconnect'); 

app.get('/signup', function() { 
    // use the db here 
}); 
+0

我得到儘可能多,但我沒有得到的是如何nodejs或貓鼬或任何我使用得到的文本輸入,並將其保存到一個唯一的ID在mongodb – Ator

+0

您是否使用HTML表單?你可能想使用'post'而不是'get'。然後,您可以使用'bodyParser'快遞中間件從表單中獲取數據。請參閱[快速指南中的此部分](http://expressjs.com/guide.html#http-methods)。 –

相關問題