简体   繁体   中英

Listen is not a function

I have this code and it say this error

TypeError: app.listen is not a function

 at mongoose.connect (C:\\wamp\\www\\curso-mean2\\index.js:14:7) at C:\\wamp\\www\\curso-mean2\\node_modules\\mongoose\\lib\\connection.js:292:19 at open (C:\\wamp\\www\\curso-mean2\\node_modules\\mongoose\\lib\\connection.js:576:17)

[nodemon] app crashed - waiting for file changes before starting...

Contents of app.js :

'use strict'

var express = require('express'); // objeto express dentro de variable app
var bodyParser = require('body-parser');

var app = express();

// cargar rutas
//configurar body parser
//es necesario para body parse y convierte a objetos Json los datos que llegan por http:
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

//configurar cabeceras http

//rutas base

//exportamos el modulo , podemos utilizar express dentro de ficheros que incluyan app
module.exports = app;

Contents of index.js :

'use strict'

var mongoose = require('mongoose');
var app = require('./app');
//configurar puerto por defecto
var port = process.env.PORT || 3977;

mongoose.connect('mongodb://localhost:27017/curso_mean2', (err,res) => {
    if (err){
        throw err;
    }else{
        console.log("La base de datos esta funcionando muy bien...");
        //a escuchar
        app.listen(port, function () {
            console.log("Servidor del api rest de musica escuchando en http://localhost");
        });
    } //else
});

Can you help me, please? I'm a beginner, and I don't know what is happening

the underlying MongoDB driver has deprecated their current connection string parser . Because this is a major change, they added the useNewUrlParser flag to allow users to fall back to the old parser, so you should use something similar like this:

mongoose.connect('mongodb://localhost:27017/curso_mean2', { useNewUrlParser: true, useUnifiedTopology: true })

If you wanna catch errors, I suggest you use promises and catch method:

mongoose.connect('mongodb://localhost:27017/curso_mean2', { useNewUrlParser: true, useUnifiedTopology: true })
 .then(()=>{
       console.log("La base de datos esta funcionando muy bien...");

       app.listen(port,function () {
           console.log("Servidor del api rest de musica escuchando en http://localhost");
       });

 })
 .catch( err => console.log(err) );

Here you can found references from connection to MongoDB

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM