Получение «ReferenceError: mongoose notfined», несмотря на то, что оно определено в app.js и установлено через npm - PullRequest
0 голосов
/ 09 января 2019

Я создаю довольно простой инструмент, который будет отправлять содержимое формы в MongoDB, а затем создаст запрос GET, чтобы вытащить его обратно. Все началось с того, что я следовал учебному пособию, и улетучилось, когда я начал создавать более надежный внешний интерфейс, но я не смог получить этот аспект функциональности внутреннего интерфейса.

Ниже приведен мой код, и вы можете ясно увидеть, что mongoose определен как переменная.

var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');});
app.use(express.static(__dirname + '/'));

var port = 3000;
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

var mongoose = require('mongoose');
global.Promise = mongoose.Promise
console.log(console.log(mongoose.connection.readyState));

mongoose.connect("mongodb://localhost:27017/formnote");

var nameSchema = new mongoose.Schema({
 srNumber: String,
 summary: String,
 notePad: String,
});


var Notes = mongoose.model("Notes", nameSchema);

app.get("/", (req, res) => {
     res.sendFile(__dirname + "/index.html");
});

app.post("/addnote", (req, res) => {
    var myData = new Notes(req.body);
    myData.save()
        .then(item => {
            res.send("Notes saved to database");
        })
        .catch(err => {
            res.status(400).send("Unable to save to database");
        });
});

app.listen(port, () => {
    console.log("Server listening on port " + port);
});

Любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Я немного реструктурировал свой код, чтобы обеспечить большую организацию при настройке самого API, и в процессе также изменился с var на const в соответствии с моими требованиями. Это, похоже, решило эту проблему

0 голосов
/ 09 января 2019

просто выстрел в темноте. Но есть проблемы при использовании Mongoose Global Promise в новой версии mongoose эта реализация, которую вы использовали для подключения к вашей базе данных, устарела и заменена на эту реализацию

поэтому вместо этих линий для подключения к базе данных,

global.Promise = mongoose.Promise
console.log(console.log(mongoose.connection.readyState));

mongoose.connect("mongodb://localhost:27017/formnote");

используйте это и попробуйте

mongoose.connect('mongodb://localhost:27017/formnote',{useNewUrlParser:true})
    .then(function(){
        console.log('mongoDB connected');
    })
    .catch(function(){
        console.log('Error :');
    }) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...