Node.js 用户验证失败,需要路径
我正在创建一个RESTAPI来处理数据库内外的数据,到目前为止,数据库连接良好,错误来自请求 这是我正在使用的代码。第一个文件是index.jsNode.js 用户验证失败,需要路径,node.js,mongodb,restapi,Node.js,Mongodb,Restapi,我正在创建一个RESTAPI来处理数据库内外的数据,到目前为止,数据库连接良好,错误来自请求 这是我正在使用的代码。第一个文件是index.js const express = require('express'); const app = express(); const mongoose = require('mongoose'); //const dotenv = require('dotenv'); //import routes authRoute = require('./rout
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'));
最后一个文档是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”:“1234567763”,
“姓名”:“约翰·多伊”,
“密码”:“密码”,
“日期”:“日期”
}像这样吗
{
"_id":"12345677763",
"name":"john doe",
"password":"apassword",
"date":"The date"
}
代码看起来不错,但我无法准确指出如何解决错误,如果您能帮助查看代码,我们将不胜感激。您确定添加了body parser中间件吗?如果没有,请在下面添加此行
const express = require('express');
const app = express();
const mongoose = require('mongoose');
//Use below line
app.use(express.urlencoded({extended: false}));
包含模式可能有意义。userschema在一个名为User.js的文件中,我在帖子中看到了它,它名为userSchemaDoh,抱歉,不知怎么错过了它。请考虑格式化代码,以便它是可读的。我已经格式化了它,希望它是可以理解的。
const express = require('express');
const app = express();
const mongoose = require('mongoose');
//Use below line
app.use(express.urlencoded({extended: false}));