Ошибка при отправке ответа JSON с Node.js, MongoDB и экспрессом после первого ответа - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь сделать простые API-интерфейсы для отдыха с Node.js Express и MongoDB.Я использую драйвер Node.js-MongoDB вместе с Express Framework

const MongoClient = require("mongodb").MongoClient
const url = "mongodb://localhost:27017/"
const dbName = "PractiseDB"
const client = new MongoClient(url, {useNewUrlParser:true})
const port = process.env.PORT || 8000

const express = require('express');
const app = express()

app.get('/', (req, res) => {
  client.connect((err) => {
    if (err) throw err
    const collRef =  client.db(dbName).collection('newCollection')
    console.log("Connected ... ")
    collRef.find({}).toArray((err, result) => {
      res.set('Content-Type', 'text/json')
      res.send(result)
      client.close(() => {
        console.log("DB Close...")
      })
    })
  })
})

app.listen(port, () => {
  console.log(`App running on port ${port}`)
})

Когда я запускаю приведенный выше фрагмент, при первом ответе я получаю свои данные JSON, но после 1-го ответа я получаю это на консоли,

опции [серверы] не поддерживаются опции [caseTranslate] не поддерживаются

Что мне не хватает или есть какой-то другой способ обслуживания JSON?

1 Ответ

0 голосов
/ 05 марта 2019

Вы закрываете клиент Монго после первого запроса. Вот почему вы получили ошибку.

Чтобы решить это. Опция 1: Вы можете переместить код, который создает новый клиент Монго внутри маршрута '/'.

Вариант 2: Не закрывайте клиент Монго внутри маршрута '/'. Поддерживайте подключение клиента mongo до тех пор, пока вы не выключите сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...