2016-04-04 58 views
2

這是集合下的文件從MongoDB中獲取一個字段的值用戶在我的數據庫NEWDB如何使用貓鼬通過JavaScript

> db.users.find().pretty() 
{ 
     "_id" : ObjectId("57025801593e301831ef3c72"), 
     "country" : "U.S", 
     "gender" : "Male", 
     "lastName" : "Ks", 
     "firstName" : "Balajee", 
     "password" : "$2a$08$.Qts1uaOJiyH.A0LM9QeGOB1EBfItB2nV29RxLVbloDnzAggIuGf6", 
     "email" : "[email protected]", 
     "position" : [ 
       "1", 
       "2" 
     ], 
     "__v" : 1, 
     "operation" : "add", 
     "userip" : "11"} 

我如何可以獲取位置,操作和userip從這個文件並用它來執行一個函數? 這是一個單獨的Javascript文件中除主節點文件之外的功能。

function verifyOTP() { 
    var position = user.position; 
    var operation = user.operation; 
    var useripp = user.userip; 
    check(arr, position, operation, useripp); 
} 
+0

這是什麼'arr'。這是'用戶'集合上'find'方法的結果嗎? –

+0

不,arr是該javascript文件中的全局數組, –

+0

另外我還沒有導出該JS文件中的任何內容,它包含一些表單驗證和提交 –

回答

0

試試這個:

var Helper = require('path_to_the_module_where_the_method_check_is_defined_and_exported'); 

function verifyOTP(user) { 
    var position = user.position; 
    var operation = user.operation; 
    var useripp = user.userip; 
    Helper.check(position, operation, useripp); 
}; 

var query = { 
    // Your query here 
}; 

var projection = { 
    position: 1, 
    operation: 1, 
    userip: 1, 
    _id: 0 
}; 

User.findOne(query, projection, function(err, user) { 
    if(err) console.log("Error: " + JSON.stringify(err)); 
    if(user) verifyOTP(user); 
}); 
+0

查詢中會有什麼?我將這個添加到我的route.js文件中,並在後面調用 –

+0

這個字段和你想要搜索'users'集合的值。例如:'var query = {「firstName」:「Balajee」}'在字段'firstName'上搜索值''Balajee'''。 –

+0

我得到數據庫爲未定義@Siddharth –

0

如果使用mongoose這是更好的定義模型,並使用它,比原始收藏。

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var userSchema = new Schema({ 
    firstName: String, 
    lastName: String, 
    // TODO: add other required fields 
}); 

mongoose.model('user', userSchema); 

exports.userSchema = userSchema; 

validation.js添加驗證邏輯,例如:

exports.verifyOTP = function(user) { 
    var position = user.position; 
    var operation = user.operation; 
    var useripp = user.userip; 
    check(arr, position, operation, useripp); // TODO: what is arr? 
}; 

而且在user-service.js,添加以下代碼:

var User = require('mongoose').model('user'); 
var validation = require('./validation'); 

var filter = { name: 'firstName' }; // TODO: use real filter here 
var fields = 'position operation userip'; 
User 
    .findOne(filter, fields) 
    .then(validation.verifyOTP) 
    .catch(err => console.log(err)); 

首先在文件user.js定義模型

+0

實際上,我在另一個JS(script.js)除了主節點文件(服務器,js就是我的情況),它沒有導出或鏈接到mongoDB或mongoose –

+0

並且有什麼問題?你的項目使用貓鼬,對吧?你在哪裏連接到數據庫? – alexmac

+0

我正在處理的JS文件有一些表單驗證和一個函數,它接受我數據庫中字段的值。 –