我的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);
}
答案 0 :(得分:2)
使用Postman时,您是否通过x-www-form-urlencoded
请求发送数据时使用POST
?
您是否也尝试过在帖子正文的application/json
标签内以raw
的形式发送数据?
答案 1 :(得分:0)
根据文档https://docs.feathersjs.com/api/client/rest.html#create,您必须在正文中传递数据,并且该数据必须为JSON(不要忘记设置内容类型)