Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 用户验证失败,需要路径_Node.js_Mongodb_Restapi - Fatal编程技术网

Node.js 用户验证失败,需要路径

Node.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

我正在创建一个RESTAPI来处理数据库内外的数据,到目前为止,数据库连接良好,错误来自请求

这是我正在使用的代码。第一个文件是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'));
最后一个文档是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}));