在node.js(lambda)代码

时间:2017-08-27 05:24:31

标签: node.js mongodb lambda

我是node.js的新手,并尝试创建一个查询MongoDB集合的lambda函数。

这是我找到的代码作为起点:

'use strict';
const MongoClient = require('mongodb').MongoClient;
const ATLAS_URI = "mongodb://lambdaUser:PASSWORD@cluster0-shard-00-00-ddlwo.mongodb.net:27017,cluster0-shard-00-01-ddlwo.mongodb.net:27017,cluster0-shard-00-02-ddlwo.mongodb.net:27017/mydb?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin";

let cachedDb = null;
function connectToDatabase(uri) {
  console.log('=> connect to database');
  if (cachedDb) {
      console.log('=> using cached database instance');
      return Promise.resolve(cachedDb);
  }

  return MongoClient.connect(uri)
    .then(db => { cachedDb = db; return cachedDb; });
}

function queryDatabase(db) {
  console.log('=> query database');

  return db.collection('sensordata').find({}).toArray()
    .then(() => { return { statusCode: 200, body: 'success' }; })
    .catch(err => { return { statusCode: 500, body: 'error' }; });
}

exports.handler = (event, context, callback) => {
  connectToDatabase(ATLAS_URI)
    .then(db => queryDatabase(db))
    .then(result => {
        console.log('=> returning result: ', result);
        context.succeed(result);
    })
    .catch(err => {
        console.log('=> an error occurred: ', err);
        context.failed(err);
    });
};

此代码工作正常,但我不知道如何从查询中恢复数据... 查看其他代码我看到find()中有一个函数(错误,数据),但在这种情况下我不知道如何插入或修改代码以返回数据而不是{statuscode:200,body :'成功'} json对象。

我将不胜感激任何帮助。 谢谢 格斯

0 个答案:

没有答案