Когда я пытаюсь вставить документ, используя приведенный ниже код, он создает пустой объект вместо документа, содержащего правильные данные.
Данные правильно передаются в метод create.
But after running it, an empty document gets inserted. No errors thrown.
введите описание изображения здесь
Вот код.
Определение схемы.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
const User = new Schema({
user_id: {
type: String,
unique: true
},
email: {
type: String,
unique: true,
lowercase: true
},
password: String,
});
module.exports = { User }
Нач.
const configuration = require("./configuration");
var mongoose = require('mongoose');
// Model declaration
var { UserSchema, AdministratorSchema, TrailPointSchema } = require("./schemas")
const UserModel = mongoose.model('User', UserSchema);
const AdministratorModel = mongoose.model('Administrator', AdministratorSchema);
const TrailPointModel = mongoose.model('TrailPoint', TrailPointSchema);
async function connectToDbAsync() {
configuration.logger.debug("attempting to connect with", configuration.databaseConnectionString);
mongoose.set('useCreateIndex', true);
await mongoose.connect(configuration.databaseConnectionString,
{
useNewUrlParser: true,
useUnifiedTopology: true
});
configuration.logger.debug("connected");
}
module.exports = {
connectToDbAsync, UserModel, AdministratorModel, TrailPointModel
}
Вставка.
require("../typedef");
const { logger } = require("../configuration");
const { UserModel, TrailPointModel } = require("../init");
const { v4: uuidv4 } = require('uuid');
/**
*
* @param {CreateUserDTO} user_data
*/
async function create_user(user_data) {
try {
/** Mapping the DTO->DO
* @type {User}
* */
var userDO = {
user_id: uuidv4(),
email: user_data.email,
password: user_data.password,
}
logger.debug("Mapping", user_data, userDO);
logger.debug("Saving Object");
var new_user = await UserModel.create(userDO);
logger.debug("Saved ", new_user);
return new_user;
} catch (e) {
logger.error("Error saving User", arguments, userDO, e);
return false;
}
}
индекс
var express = require("express");
var bodyParser = require("body-parser");
var { connectToDbAsync } = require("./init");
const Controllers = require("./controllers")
const app = express();
app.use(bodyParser.json());
app.use(express.static("app/public"));
connectToDbAsync().then(function () {
Controllers.TrailController.register(app);
Controllers.UserController.register(app);
// app.get("*", function (req, res) {
// res.json("hello");
// });
app.listen(8080, () => console.log("App listening on port 8080!"));
});