In meiner app, ich zurückkehren Versprechen mit meinem Mungo Modell:Node.js Mungo .findOne ist keine Funktion
var roomModel = require('../../../models/room').roomModel;
roomModel.findOne({ name: req.body.roomName })
.then(
(room) => {
return new Promise(function(resolve, reject) {
//if no room present, create one, if present, check password
if (room) {
if (room.password === req.body.roomPassword) {
return resolve(room);
} else {
return reject({
code: 401,
message: 'Room password not correct'
});
}
} else {
// create new room with given data
var newRoom = roomModel({});
newRoom.name = req.body.roomName;
newRoom.password = req.body.roomPassword;
//newRoom.users = [];
newRoom.users[0] = {
name: req.body.userName
};
newRoom.save()
.then((data) => {
console.log(data);
if (!data) {
return reject({
code: 500,
message: 'Error when saving room'
});
} else {
return resolve(newRoom);
}
});
}
});
}
)
.then((room) => {
room.findOne({ 'users.name': req.body.userName })
.then((user) => {
console.log(user);
});
})
room.js Modell:
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = require('./user').userSchema;
var room = new Schema({
name: String,
password: String,
users: [userSchema]
});
module.exports.roomSchema = room;
module.exports.roomModel = mongoose.model('room', room);
Benutzer. js Modell:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var user = new Schema({
name: String
});
module.exports.userSchema = user;
module.exports.userModel = mongoose.model('user', user);
aber wenn ich versuche anzurufen .findOne() Funktion auf diesem zurück Modell, bekomme ich folgende Fehlermeldung:
TypeError: room.findOne is not a function
ist Modell in dem Versprechen besteht kein Modell in next .then()
Aussage?
Können Sie uns zeigen, was Sie aus Ihrer ' /models/room.js' Datei exportieren? – Paul
Aktualisiert - Es scheint nicht das Modell selbst ist ein Problem, weil in der ersten .then Anweisung alle Operation auf dem Modell funktionieren, nur wenn ich das Modell zu lösen, kann ich nicht Mungo Methoden auf diese verwenden –
Können Sie 'console.log (newRoom) 'und die Ergebnisse veröffentlichen? Auch 'console.log (Daten)' bitte? –