参考错误:mongoose未定义。

3

我遇到了ReferenceError: mongoose未定义的问题。我是node.js的新手,以下是我的App.js代码。我无法通过在Google上找到的任何答案来解决它。

   var express = require('express');
 var app = require('mongoose');
 var path = require('path');
 var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser');

 var index = require('./routes/index');
var users = require('./routes/users');
var app = express();
app.set('views', path.join(__dirname, 'views')); 
   app.set('view engine', 'jade');

 app.use(logger('dev'));
  app.use(bodyParser.json());
  app.use(bodyParser.urlencoded({ extended: false }));
   app.use(cookieParser());
 app.use(express.static(path.join(__dirname, 'public')));

 app.use('/', index);
 app.use('/users', users);
 app.use(function(req, res, next) {
 var err = new Error('Not Found');
  err.status = 404;
  next(err);
  });

  mongoose.connect('mongodb://localhost:27017/mydb');

  var Schema = new mongoose.Schema({
  cr   : String,

        });

       var user = mongoose.model('myc', Schema);

    app.get('/view', function(req, res){
     user.find({}, function(err, docs){
      if(err) res.json(err);
    else    res.render('index', {users: docs});
      });
             });


      app.use(function(err, req, res, next) {

    res.locals.message = err.message;
     res.locals.error = req.app.get('env') === 'development' ? err : {};

    res.status(err.status || 500);
   res.render('error');
  });

 module.exports = app;

我正在使用Node版本6.11.0和npm版本5.5.1,如何解决这个问题?请帮忙。

4个回答

8
您需要将mongoose作为依赖项进行安装。
运行以下命令:
$ npm install mongoose --save

同时替换

var app = require('mongoose');

to

var mongoose = require('mongoose');

0

您需要确保已安装mongoose。尝试通过npm进行安装。

npm install mongoose --save


它只能通过npm安装。 - Tesd te
真的,我应该表述得更清楚。尽管答案是正确的,显然也是准确的,但我被@Sajeetharan提前了3秒。 - Hunter

0

var app = require('mongoose'); 替换为 var mongoose = require('mongoose');。我假设您已经安装了 mongoose。如果没有,请使用命令 npm i mongoose --save 进行安装。


0

所有这些答案都在CJ中,因此我想展示如何使用ES6连接MongoDB以避免此错误:

import mongoose from "mongoose"

const connect = async () => {
    try {
      await mongoose.connect(your DB url);
      console.log("Connected to mongoDB.");
    } catch (error) {
      throw error;
    }
  };

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接