Firebase 함수에서 MongoDB에 연결할 수 없습니다.

불타는 알코올

MERN 웹 앱 백엔드의 호스트로 Firebase Functions를 사용하고 있습니다. MongoDB에 로컬로 연결하면 작동하고 데이터베이스로 작업을 실행할 수 있습니다. 그러나 firebase 함수에 배포했을 때 데이터베이스에 연결하지 못했습니다.

암호:

index.js

const functions = require('firebase-functions');
const server = require('./server.js');
exports.api = functions.runWith({ memory: "2GB", timeoutSeconds: 120 }).https.onRequest(server);

server.js의 일부

const express = require("express");
const dotenv = require("dotenv");
const colors = require("colors");
const morgan = require("morgan");
const path = require("path");
const cors = require("cors");
const bodyParser = require("body-parser");
const routes = require("./routes/routes.js");
const mongooseMethods = require("./database.js");
dotenv.config({ path: "./config/config.env" });
mongooseMethods.connectDB(process.env.MONGO_URL);
const PORT = process.env.PORT || 8080;

// set up app
const app = express();
app.listen(PORT, console.log(`Server running in ${process.env.NODE_ENV} mode on port ${PORT}`.yellow.bold));
app.use(cors({ origin: true }));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(morgan("dev"));
app.use("/api", routes); // /api routes
module.exports = app;

route.js

const express = require("express");
const app = express.Router();
const testingApi = require('../controller/testing.js');
const authApi = require('../controller/auth.js');

// testing
app.get('/testing', testingApi.testing);

// user authentication
app.post('/user/register', authApi.createUser);

module.exports = app;

api / testing /도 작동합니다.

database.js

const mongoose = require("mongoose");
const mongooseMethods = {
    connectDB: async (url) => {
        try {
            console.log("Connecting to MongoDB")
            const connection = await mongoose.connect(url, { useNewUrlParser: true, useUnifiedTopology: true });
            console.log(`MongoDB Connected: ${connection.connection.host}`.cyan.bold);
            return connection;
        } catch (error) {
            console.log(`Error: ${error.message}, Exiting`.red.bold);
            process.exit(1);
        }
    }
}
module.exports = mongooseMethods;

auth.js

const User = require('../model/user.model.js');
const bcrypt = require("bcryptjs");

let authenticationApi = {
    createUser: async (req, res) => {
        try {
            console.log("Creating");
            let newUser = new User({
                ...req.body
            })
            let result = await newUser.save();
            return res.status(200).json({ result: result });
        } catch (error) {
            return res.status(400);
        }
    }

}

module.exports = authenticationApi;

firebase에 요청을 보낼 때받은 오류는

2020-02-27T02:34:46.334044912Z D api: Function execution took 30970 ms, finished with status: 'connection error'

그러나 그것은 지역에서 완벽하게 잘 실행됩니다. 또한 "MongoDB에 연결된"콘솔 로그가 표시되지 않습니다. 나는 처음에 mongo에 연결하지 못한 database.js에서 문제가 발생한다고 추측하고 있지만 해결 방법을 모르겠습니다.

Firebase에서 유료 요금제를 사용하고 있으며 아웃 바운드 네트워킹이 괜찮을 것입니다.

추신 이것은 여기에 처음 게시하는 것입니다. 시간 내 주셔서 감사 드리며 규칙을 어기면 미리 사과드립니다.

불타는 알코올

이것이 발생하는 이유는 Firebase Functions의 아키텍처가 실제 서버가 아니라 서버리스 람다와 유사한 엔드 포인트이기 때문입니다. 데이터베이스에 대한 지속적인 연결을 설정할 수 없기 때문에 요청을받을 때마다 연결해야하기 때문에 데이터베이스는이를 스팸으로 인식하고 Firebase의 추가 연결 요청을 종료합니다.

따라서 Firebase Functions에서 의도 된 지속적인 연결로 완전한 익스프레스 앱을 호스팅 할 수 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

'Firebase 서버에 연결할 수 없습니다'

분류에서Dev

Genymotion 에뮬레이터 : Firebase에 연결할 수 없습니다.

분류에서Dev

함수에서 변수를 연결할 수 없습니다.

분류에서Dev

Azure 함수에서 Azure SQL에 연결할 수 없습니다.

분류에서Dev

일부 네트워크에서 Firebase CDN에 연결할 수 없습니다.

분류에서Dev

템플릿 내에서 MongoDB에 연결할 수 없습니다.

분류에서Dev

C # .NET Core 앱에서 Firebase Cloud Firestore를 연결할 수 없습니다.

분류에서Dev

MongoDB가 로컬 서버에 연결할 수 없습니다.

분류에서Dev

NodeJS가 ECONNREFUSED 서버의 MongoDB에 연결할 수 없습니다.

분류에서Dev

MongoDB가 로컬 서버에 연결할 수 없습니다.

분류에서Dev

MongoDB와 연결할 수 없습니다.

분류에서Dev

postgres에 연결할 수 없습니다

분류에서Dev

Steam에 연결할 수 없습니다

분류에서Dev

Skype에 연결할 수 없습니다.

분류에서Dev

BFD에 연결할 수 없습니다.

분류에서Dev

URL에 연결할 수 없습니다.

분류에서Dev

192.168.1.1에 연결할 수 없습니다.

분류에서Dev

PPPOE에 연결할 수 없습니다.

분류에서Dev

Websocket에 연결할 수 없습니다.

분류에서Dev

sparkSQL에 연결할 수 없습니다.

분류에서Dev

firebase / firestore에 연결할 때 오류 : Cloud Firestore 백엔드에 연결할 수 없습니다.

분류에서Dev

FXCM 연결 오류-서버에 연결할 수 없습니다.

분류에서Dev

연결된 서버에 연결할 수 없습니다.

분류에서Dev

Firebase Jira 통합 오류-Jira 인스턴스에 연결할 수 없습니다.

분류에서Dev

http를 통해 함수 앱에서 Azure VM에 연결할 수 없습니다.

분류에서Dev

Matlab cmex 함수에서 dll을 mexfunction에 연결할 수 없습니다.

분류에서Dev

함수 앱에 연결할 수 없습니다.

분류에서Dev

mongodb 클러스터에 연결할 수 없습니다.

분류에서Dev

mongoose로 mongodb 아틀라스에 연결할 수 없습니다.

Related 관련 기사

  1. 1

    'Firebase 서버에 연결할 수 없습니다'

  2. 2

    Genymotion 에뮬레이터 : Firebase에 연결할 수 없습니다.

  3. 3

    함수에서 변수를 연결할 수 없습니다.

  4. 4

    Azure 함수에서 Azure SQL에 연결할 수 없습니다.

  5. 5

    일부 네트워크에서 Firebase CDN에 연결할 수 없습니다.

  6. 6

    템플릿 내에서 MongoDB에 연결할 수 없습니다.

  7. 7

    C # .NET Core 앱에서 Firebase Cloud Firestore를 연결할 수 없습니다.

  8. 8

    MongoDB가 로컬 서버에 연결할 수 없습니다.

  9. 9

    NodeJS가 ECONNREFUSED 서버의 MongoDB에 연결할 수 없습니다.

  10. 10

    MongoDB가 로컬 서버에 연결할 수 없습니다.

  11. 11

    MongoDB와 연결할 수 없습니다.

  12. 12

    postgres에 연결할 수 없습니다

  13. 13

    Steam에 연결할 수 없습니다

  14. 14

    Skype에 연결할 수 없습니다.

  15. 15

    BFD에 연결할 수 없습니다.

  16. 16

    URL에 연결할 수 없습니다.

  17. 17

    192.168.1.1에 연결할 수 없습니다.

  18. 18

    PPPOE에 연결할 수 없습니다.

  19. 19

    Websocket에 연결할 수 없습니다.

  20. 20

    sparkSQL에 연결할 수 없습니다.

  21. 21

    firebase / firestore에 연결할 때 오류 : Cloud Firestore 백엔드에 연결할 수 없습니다.

  22. 22

    FXCM 연결 오류-서버에 연결할 수 없습니다.

  23. 23

    연결된 서버에 연결할 수 없습니다.

  24. 24

    Firebase Jira 통합 오류-Jira 인스턴스에 연결할 수 없습니다.

  25. 25

    http를 통해 함수 앱에서 Azure VM에 연결할 수 없습니다.

  26. 26

    Matlab cmex 함수에서 dll을 mexfunction에 연결할 수 없습니다.

  27. 27

    함수 앱에 연결할 수 없습니다.

  28. 28

    mongodb 클러스터에 연결할 수 없습니다.

  29. 29

    mongoose로 mongodb 아틀라스에 연결할 수 없습니다.

뜨겁다태그

보관