我对todos1的帖子请求显示错误的请求?

时间:2018-02-18 05:27:36

标签: node.js

任何人都可以告诉我我对todos1的帖子请求显示不良请求我的app1应用程序绝对正常我的代码在运行节点服务器时没有显示任何错误但是当我在postman中运行它时它显示错误请求400但发送正确的数据到我的数据库,这意味着我的req.send函数在某个地方是错误的,任何人都可以告诉我哪里错了???

const lodash=require('lodash');
var express=require('express');
var bodyparser=require('body-parser');
var mongoose=require('mongoose');
var {app1}=require('./todos');
var {ObjectId}=require('mongodb');

mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/TodoApp');
var port=process.env.PORT || 3000;
var app=express();
app.use(bodyparser.json());

app.post('/todos',(req,res)=>
{
    var todo=new app1({
        text:req.body.text,
        email:req.body.email
    });
    todo.save().then((docs)=>
    {
        res.send(docs);
    },(err)=>
    {
        res.status(400).send(err);
    });
});

app.get('/todos',(req,res)=>
{
    app1.find().then((todos)=>{
        res.send({
            todos
        })
    },(err)=>
    {
        res.status(400).send(err);
    });
});

app.get('/todos/:id',(req,res)=>
{
    var id=req.params.id;
    if(!ObjectId.isValid(id))
    {  var text1='No id is found';
        res.status(404).send({text1});
    }

        app1.findById(id).then((todos)=>
        {
            if(todos)
            {
                res.send(todos);
            }
            else
            {
                res.status(404).send();
            }
        },(err)=>
        {
            res.status(400).send(err);
        });
});
app.patch('/todos/:id',(req,res)=>
{
    var id=req.params.id;
    var body=lodash.pick(req.body,['text','completed']);
    if(!ObjectId.isValid(id))
    {
        var text1="no id is found";
        return res.status(404).send({text1});
    }
    if(lodash.isBoolean(body.completed) && (body.completed))
    {
     body.completedBy=new Date().getTime();
    }
    else
    {
        body.completed=false;
        body.completedBy=null;
    }

    app1.findByIdAndUpdate(id,{$set:body},{new:true}).then((todos)=>
    {
        if(todos)
        {
            return res.send(todos);
        }
        else
        {
            res.status(404).send();
        }
    },(err)=>
    {
        res.status(400).send(err);
    });
});

app.delete('/todos/:id',(req,res)=>
{
    var id=req.params.id;
    if(!ObjectId.isValid(id))
    {
        var text1='No id is found';
        return res.status(404).send({text1});
    }
    app1.findByIdAndRemove(id).then((todos)=>
    {
        if(todos)
        {
            return res.send(todos);
        }
        else
        {
            res.status(404).send();
        }
    },(err)=>
    {
        res.status(400).send(err);
    });
    }
);
app.post('/todos1',(req,res)=>
{
    var body=lodash.pick(req.body,['email','password','text']);
    var user=new app1(body);
    user.save().then(()=>
    {
        return user.generateAuthToken();
        }).then((token)=>
        {
            res.header('x-auth',token).send(user);
        }).catch((e)=>
        {
            res.status(400).send(e);
        });
});

app.listen(port,()=>
{
    console.log(`Starting port ${port}`);
});

module.exports={app};

1 个答案:

答案 0 :(得分:0)

很难准确理解您的意思,但如果user.save()正在运行且您在数据库中看到新文档,那么user.generateAuthToken()必定会失败。

Postman应该向您显示错误的响应,但如果没有,请在服务器端记录错误。