如何在strongloop的远程方法中执行MongoDB语句

how to execute MongoDB statements in strongloop's remote method

本文关键字:方法 执行 语句 MongoDB strongloop 程方法      更新时间:2023-09-26

嗨 我的任务是使用strongloop创建一个远程方法,并为其余API执行mongoDB函数。

"db.users.count({user_email_id :"bhargavb@ideaentity.com",user_password:"5f4dcc3b5aa765d61d8327deb882cf99",isdelete:1,user_status:1});如果(计数=1)则"

要在强循环中执行此操作,我正在尝试类似的东西

module.exports = function(GetUserFind) {
    var server = require('../../server/server');
    var db = server.dataSources.MongoTours;
    db.connect(function(err, db) {
        if (err) return console.log('error opening db, err = ', err);
        console.log("db opened!");

        GetUserFind.login = function(par,par2,par3,par4,cb){
            console.log(par,par2,par3,par4);
            db.collection('users', function(err, collection) {
                console.log("the collection is"+ collection);
                if (err) return console.log('error opening users collection, err = ', err);
                collection.count ({user_email:par}, function(err, result) {
                    if(err) {
                        console.error(err);
                        return;
                    }
                    cb(null,result);
                });
                cb(null,par,par2,par3,par4);
            });
        }
    });
    GetUserFind.remoteMethod(
        'login',
        {
            accepts: [{arg: 'user_email_id', type: 'string'},
            {arg: 'user_password', type: 'string'},
            {arg: 'isdeleted', type: 'number'},
            {arg: 'user_status', type: 'number'}],
            returns: {arg: 'result', type: 'object'},
            http: {path:'/Loogin', verb: 'get'}
        }
    );
    //  db.close();
}

但我不能做同样的事情,谁能告诉我如何在强循环远程方法中执行mongoDB语句

提前致谢

我按以下方式尝试了它,

module.exports = function(GetUserFind) {
    var response = 'User does not exists';
    var server = require('../../server/server');
    var sha256 = require('js-sha256');
    // getUser function login declaration
    GetUserFind.login = function(par, par2, cb) {
        console.log(par, par2);
        // calling users collection method
        var MongoClient = require('mongodb').MongoClient;
        var self = this;
        this.callback = cb;
        // to connect to mongoDB datasource
        MongoClient.connect('mongodb://192.168.0.78:27017/tours', function(err,
                db) {
            console.log(sha256(par2));
            if (err) {
            // try{
                console.log(err);
            }

            db.collection('users').find({
                user_email_id : par,
                user_password : sha256(par2)
            },{user_password:0}).toArray(function(err, result) {
                //https://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/
                if (err) {
                    throw err;
                }
                if (result.length > 0) {
                self.callback(null, result);
                    // db.disconnect();
                } else {
                    self.callback(null, response);
                    // db.disconnect();
                }
            });
        });
    }
    GetUserFind.remoteMethod('login', {
        // passing input parameters
        accepts : [ {
            arg : 'user_email_id',
            type : 'string'
        }, {
            arg : 'user_password',
            type : 'string'
        } ],
        // getting output parameters
        // returns: {arg: 'user_email_id', type: 'string'},
        returns : [ {
            arg : 'result',
            type : 'object'
        } ],
        http : {
            path : '/Loogin',
            verb : 'get'
        }
    });
    // db.close();

};

这可能会对其他人有所帮助。

如果有人知道更好和简单的方法,请发布或更新答案