Я получаю ошибку User.find is not a function
. Я считаю, что все настроил правильно, но, видимо, нет.
Вот моя модель, а также другие фрагменты кода.
модель пользователя
const mongoose = require('mongoose')
let userSchema = new mongoose.Schema({
email: {
type: String,
unique: true,
required: true
},
password: {
type: String,
required: true
}
})
const User = mongoose.model("user", userSchema)
module.exports.User = User
маршруты пользователей
const express = require('express')
const router = express.Router()
const mongoose = require('mongoose')
const User = require('../models/user')
/* GET users listing. */
router.get('/', (req, res) => {
User.find()
.then(function(users) {
res.status(201).json(users)
})
.catch(function(err) {
console.error(err)
res.status(500).send('Eorror ' + err)
})
})
module.exports = router
app.js
const createError = require('http-errors');
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
const cors = require('cors');
const mongoose = require('mongoose');
// connect database
mongoose.connect('mongodb://localhost/<removed>', {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true
});
console.log(mongoose.connection.readyState);
// import routes
const indexRouter = require('./routes/index');
const usersRouter = require('./routes/users');
const app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');
app.use(cors());
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
Когда я запускаю приложение, я получаю состояние готовности 2, поэтому оно подключается. Так что не знаю, где я ошибаюсь.
Я пытаюсь сохранить соединение БД с одним файлом, где все приложение может использовать БД, где это необходимо. Эта часть предназначена только для API, поэтому представления и т. Д. Не важны.