【问题标题】:Postman returns ' Could not get any response '邮递员返回“无法得到任何回应”
【发布时间】:2020-09-20 07:19:54
【问题描述】:

当我发送 Post 请求时,Postman 返回“无法获得任何响应”,但向其他 URL 发出请求就可以了。请问我该如何解决这个问题? index.js 是我的应用程序的入口点。下面的获取 URL 有效。

index.js

    const express = require('express')
const mongoose = require('mongoose')
const dotenv = require('dotenv')
const bodyParser = require('body-parser')
const app= express()

//body parser
app.use(bodyParser.json())

//config
dotenv.config()
//connect to db
mongoose.connect(
    process.env.DB_CONNECTION,
    { useNewUrlParser: true },
    ()=>{
        console.log('contented to db')
    }
)

//import route
const authRoute = require('./ROUTES/auth')

app.use('', authRoute)

app.use('/api/user', authRoute)

//start server
app.listen(5000);



# auth.js #

所有路由都在 auth.js 中完成

        const express =require('express')
    const router = express.Router();
    const User = require('./moduls/User')
    
    
    router.get('/',(req, res)=>{
        res.send('home')
    })
    
    //validation schema
    const joi =require('@hapi/joi');
    const regSchema ={
        name:joi.string().min(6).required(),
        email:joi.string().required().email(),
        password:joi.string().min(8).required()
    }
    
    router.post('/register', async(req, res)=>{
        //check and return error status
        const { error } = joi.ValidationError(regSchema);
        if(error) return res.status(400).json({message: err})
        const emailExist = await User.findOne(req.body.email)
        if (emailExist) return res.status(400).json({message:'there is a user with this email'})
    
        //get user object
        const user =new User({
            name:req.body.name,
            email:req.body.email,
            password:req.body.password,
            rePassword:req.body.rePassword
        })
        try{
            await user.save()
            .then(data=>{
                res.json(data)
            })
        }
        catch(err){
            res.status(400).json({message: err})
        }
    
    })
    
    module.exports=router;

模块/User.js

模块文件夹中的用户模块

const mongoose = require('mongoose')

const userSchema =new  mongoose.Schema({
    name:{
        type: String,
        required:true,
        min:6,
        max:30
    },
    email:{
        type: String,
        required:true,
        max:100
    },
    password:{
        type:String,
        required:true,
        min:8
    },
    rePassword:{
        type:String,
        required:true,
        min:8
    },
    date:{
        type:Date,
        default:Date.now()
    }

})

module.exports = mongoose.model('User', userSchema)

【问题讨论】:

    标签: javascript node.js express postman


    【解决方案1】:

    .save() 函数返回一个可以等待的承诺。使用 async/await 时不需要使用 .then()。

    而不是这个。

    await user.save()
    .then(data=>{
        res.json(data)
    })
    

    我会这样做。

    const data = await user.save();
    res.json(data);
    

    【讨论】:

      猜你喜欢
      • 2017-11-18
      • 2019-03-20
      • 2018-09-24
      • 2019-12-23
      • 1970-01-01
      • 2015-08-21
      • 2019-04-01
      • 2020-08-10
      • 1970-01-01
      相关资源
      最近更新 更多