我正在使用mongdb並擁有用戶數據庫。我希望允許用戶根據用戶名搜索其他用戶的數據庫。到目前爲止,我已經嘗試過,並沒有實現這個目標。在Mongodb數據庫中搜索用戶
這裏是我的前端HTML:
<h1>Search Users</h1>
<form class="form-inline" method="POST" action="https://stackoverflow.com/users/search">
<div class="form-group">
<input type="text" name="user_query" class="form-control" placeholder="Find Users By Username...">
</div>
<button type="submit" class="btn btn-primary">Search</button>
</form>
而且在app.js我的服務器端代碼:
// Seach Page
app.get('/', function(req, res, next){
res.render('searchusers');
});
// Search Processing
app.post('/users/search', function(req, res, next){
var query = req.body.user_query;
var result = db.users.findOne({"username":"user_query"})
console.log('Searched for user: '+result);
});
我的集合中存儲的用戶被稱爲「用戶」數據庫。每當我打電話db.users.findOne({"username":user_query})
我提交看起來像這樣的形式後得到一個錯誤:
TypeError: Cannot read property 'findOne' of undefined
at /Users/joshuablew/Desktop/MobiusApp/app.js:86:24
at Layer.handle [as handle_request] (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/layer.js:95:5)
at /Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:335:12)
at next (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:275:10)
at /Users/joshuablew/Desktop/MobiusApp/app.js:74:3
at Layer.handle [as handle_request] (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:317:13)
at /Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:335:12)
at next (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:275:10)
at /Users/joshuablew/Desktop/MobiusApp/node_modules/connect-flash/lib/flash.js:21:5
at Layer.handle [as handle_request] (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:317:13)
at /Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:335:12)
at next (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/index.js:275:10)
at /Users/joshuablew/Desktop/MobiusApp/node_modules/express-validator/lib/express_validator.js:355:5
at Layer.handle [as handle_request] (/Users/joshuablew/Desktop/MobiusApp/node_modules/express/lib/router/layer.js:95:5)
我可以做不同的,這樣,當用戶搜索的形式輸入用戶名,結果將在網頁上顯示什麼?謝謝。
看起來像'db'對象中沒有定義屬性'users'。它在程序的其他部分工作嗎? –
這是目前使用它的程序的唯一部分。我如何在我的db對象中定義用戶? – jblew
如果你想以這種方式使用它,你需要擴展你的db對象。但對我來說這不是一個好主意 –