【发布时间】:2020-07-18 16:29:42
【问题描述】:
我正在创建一个rest api来处理进出数据库的数据,到目前为止,数据库连接良好,错误来自请求。
这是我正在使用的代码。第一个文件是 index.js
const express = require('express');
const app = express(); const mongoose = require('mongoose'); //const dotenv = require('dotenv');
//import routes authRoute = require('./routes/auth');
//dotenv.config()
//connect to db
mongoose.connect('mongodb+srv://Doe:abcdef@cluster0-pqcka.mongodb.net/<dbname>?retryWrites=true&w=majority', { useNewUrlParser: true , useUnifiedTopology: true }, ()=>console.log('connected to db'))
//connecting to middleware app.use(express.json());
//route middlewares
app.use('/api/user', authRoute);
app.listen(3000,()=>console.log('The server is up and running'));
我还有另一个名为 User.js 的文件,它存储应该在数据库中的值,即姓名和电子邮件。这是文件
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
**name**:{
type:String,
required:true,
min:6,
max:255 },
**email**:{
type:String,
required:true,
max:255,
min:6 },
**password**:{
type:String,
required:true,
max:1024,
min:6 },
date:{
type:Date,
default:Date.now }
});
module.exports = mongoose.model('User',userSchema)
最后的文件是我存储数据的 Auth.js,这里是文件
还有一个包含数据架构的文档
const router = require('express').Router();
const User = require('../models/User');
router.post('/register',async(req,res)=>{
const user = new User({ name: req.body.name, email: req.body.email, password: req.body.password
}); try{ const savedUser = await user.save(); res.send(savedUser); }catch(err){ res.status(400).send(err); } }); module.exports= router;
到目前为止,这些是我拥有的代码。它按预期工作,即使在控制台中它也输出它已连接到数据库,因此连接中没有错误。我用来发送 post 请求的路径是
http://localhost:3000/api/user/register
我得到的结果是
{
"errors": { "name": { "properties": { "message": "Path name is required.", "type": "required", "path": "name" }, "kind": "required", "path": "name" }, "email": { "properties": { "message": "Path email is required.", "type": "required", "path": "email" }, "kind": "required", "path": "email" }, "password": { "properties": { "message": "Path password is required.", "type": "required", "path": "password" }, "kind": "required", "path": "password" } }, "_message": "User validation failed", "message": "User validation failed: name: Path name is required., email: Path email is required., password: Path password is required." }
我希望它输出所以 { "_id":"12345677763", “名称”:“约翰·多伊”, "密码":"密码", "日期":"日期" }这样的事情
{
"_id":"12345677763",
"name":"john doe",
"password":"apassword",
"date":"The date"
}
代码看起来不错,但我无法准确指出如何解决错误,如果有任何帮助查看代码,将不胜感激。
【问题讨论】:
-
包含架构可能有意义。
-
用户模式在一个名为 User.js 的文件中,我在帖子中有它,它被称为 userSchema
-
Doh,对不起,不知怎的错过了。请考虑格式化代码,使其可读。
-
我已经格式化了,希望可以理解