У меня есть эта проблема в моем приложении FeathersJS. У меня есть пользовательская модель Mongoose, как показано ниже.
// users-model.js - A mongoose model
//
// See http://mongoosejs.com/docs/models.html
// for more of what you can do here.
import { Application } from '../declarations';
export default function (app: Application) {
const mongooseClient = app.get('mongooseClient');
const users = new mongooseClient.Schema({
first_name: { type: String, },
last_name: { type: String, },
email: {type: String, unique: true, lowercase: true},
password: { type: String },
dob: {type: Date, },
}, {
timestamps: true
});
return mongooseClient.model('users', users);
}
Однако, когда я вызываю мой API для создания пользователя, вот так.
POST /users?first_name=Patrick& last_name=Lumenus& email=abc@gmail.com& password=ABC123& dob=1991-10-10 HTTP/1.1
Host: localhost:3030
User-Agent: PostmanRuntime/7.18.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 2749d3e8-a7fc-45f8-96ae-0b04a4c51bc0,b1fb4da4-b9e1-4824-917a-5965250d6f9b
Host: localhost:3030
Accept-Encoding: gzip, deflate
Content-Length: 0
Connection: keep-alive
cache-control: no-cache
Кажется, что сохраняется только сгенерированный ObjectID и отметки времени. Это не сохраняет данные, которые я передал для нового пользователя. Вот данные в моей базе данных, которая была создана.
{"_id":{"$oid":"5dade949612103041bd7653c"},"createdAt":{"$date":{"$numberLong":"1571678537003"}},"updatedAt":{"$date":{"$numberLong":"1571678537003"}},"__v":{"$numberInt":"0"}}
Любой совет, что я делаю неправильно? Кстати, это совершенно новый проект Feathers. Я не добавил ни хуков, ни какого-либо другого дополнительного кода, кроме вышеперечисленного.
Что ж, я настроил файл mongoose.ts в соответствии с рекомендациями, чтобы использовать обновленный движок. Хотя я только добавил аргумент useUnifiedTopology: true
, чтобы заглушить предупреждение, которое я получал при запуске приложения.
import mongoose from 'mongoose';
import { Application } from './declarations';
import logger from './logger';
export default function (app: Application) {
mongoose.connect(
app.get('mongodb'),
{ useCreateIndex: true, useNewUrlParser: true, useUnifiedTopology: true }
).catch(err => {
logger.error(err);
process.exit(1);
});
mongoose.Promise = global.Promise;
app.set('mongooseClient', mongoose);
}