TypeError: db.collection не является функцией

Я пытаюсь отправить данные на базу данных, которую я создал на mLab, и я получаю эту ошибку, но я не знаю то, что идет не так, как надо. Я также считал ранее заданный вопрос по этой теме, но я не могу решить свою ошибку, поскольку я плохо знаком с этим. Таким образом, здесь я отправляю код, который я пытаюсь реализовать, и Он взят из этого учебного руководства https://medium.freecodecamp.com/building-a-simple-node-js-api-in-under-30-minutes-a07ea9e390d2.

server.js

const express = require('express');
const MongoClient = require('mongodb').MongoClient;
const bodyParser = require('body-parser');

const db = require('./config/db');


const app = express();

const port = 8000;

app.use(bodyParser.urlencoded({extened:true}));


MongoClient.connect(db.url,(err,database) =>{

    if (err) return console.log(err)
    require('./app/routes')(app,{});
    app.listen(port,() => {
        console.log("We are live on"+port); 
    });

})

db.js

module.exports = {
  url : "mongodb://JayTanna:Jay12345@ds147510.mlab.com:47510/testing"
};

index.js

const noteroutes = require('./note_routes');

module.exports = function(app,db)
{
    noteroutes(app,db);

};

note_routes.js

module.exports = function(app, db) {
  app.post('/notes', (req, res) => {
    const note = { text: req.body.body, title: req.body.title };
    db.collection('notes').insert(note, (err, result) => {
      if (err) { 
        res.send({ 'error': 'An error has occurred' }); 
      } else {
        res.send(result.ops[0]);
      }
    });
  });
};

62
задан 4 May 2017 в 12:43

1 ответ

Имел эту проблему также, я следовал учебному руководству, в котором предъявитель использовал набор в качестве функции. Это никогда не работало на меня. То, что я обнаружил, было то, что предъявитель использовал версию 2.3.4 mongodb npm модуль. модуль хорошо в версию 3.x.x теперь. Когда я изменил package.json файл для запроса 2.x.x версия mogodb npm модуль, внезапно все работало.

то, Чему я верил, произошло, был то, что модуль был изменен для изменения набора в другой объект. Не знайте, как использовать новую версию, но если Вы указываете, что хотите 2.x.x версия, старый путь должен работать. Конкретно я могу подтвердить что (прибывающий из моего package.json файла, раздела "зависимостей") "mongodb": работы "^2.2.31".

Лучший способ:

[110]gt; npm install mongodb@2.2.31 --save
0
ответ дан 31 October 2019 в 13:01

Другие вопросы по тегам:

Похожие вопросы: