首页 文章

谷歌 Cloud 功能连接到mongodb

提问于
浏览
0

我想在我的谷歌 Cloud 功能HTTP触发器中连接到mongodb .

'use strict';
const http = require('http');
const MongoClient = require('mongodb').MongoClient;
exports.weatherWebhook = (req, res) => {
    console.log(req.body);


        MongoClient.connect('string', (err, client) => {
            if (err) {
                console.log(err)
            } else {
                db = client.db('chatbot')
                db.collection('chatbot_params').save({ "loanType": "123", "loanAmount": "90000", "duration": "5 years", "userSession": "test-1234" }, (err, result) => {
                    if (err) {
                        console.log(err)
                       res.json({ "status": "err" })
                    } else {
                        res.json({ "status": "saved" })
                    }
                })
            }
        })
    }

但是当我运行该程序时,我得到一个错误说 .

ReferenceError: db is not defined at MongoClient.connect
(/user_code/index.js:14:16) at result
(/user_code/node_modules/mongodb/lib/utils.js:414:17) at
executeCallback (/user_code/node_modules/mongodb/lib/utils.js:406:9)
at /user_code/node_modules/mongodb/lib/mongo_client.js:272:5 at
connectCallback
(/user_code/node_modules/mongodb/lib/mongo_client.js:946:5) at
/user_code/node_modules/mongodb/lib/mongo_client.js:816:13 at
_combinedTickCallback (internal/process/next_tick.js:73:7) at process._tickDomainCallback (internal/process/next_tick.js:128:9)

这是为什么 . 我在我的其他应用程序(而不是 Cloud 功能)中实现了相同的代码 . 它似乎工作正常 .

注意:我使用mongo lab来托管数据库

1 回答

  • 0

    请指定MongoClient的url,因为现在你只是将'string'作为url选项传递 . 看看下面

    MongoClient.connect(url, function(err, client) { // provide mongo lab url 
      assert.equal(null, err);
      console.log("Connected successfully to server");
    
      const db = client.db(dbName);
    
      client.close();
    });
    

    希望,这可能会对你有所帮助

相关问题