FeathersJS Mongoose 模型没有正确地将数据保存到数据库

FeathersJS Mongoose Models Not Properly saving data to database

我的 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);
}

使用 Postman 时,您是否在通过 POST 请求发送数据时使用 x-www-form-urlencoded

您是否也尝试过在 post 正文的 raw 选项卡中以 application/json 的形式发送数据?

根据文档 https://docs.feathersjs.com/api/client/rest.html#create 您必须在正文中传递数据,并且它必须是 JSON(不要忘记设置内容类型)