2017-12-06 3 views
0

Was ist los geschickt werden mit diesem Code ?, es zwei Fehler provozieren:before, Fehler: nicht Header gesetzt, nachdem sie

Fehler: nicht Header gesetzt, nachdem sie

Typeerror gesendet werden : Kann die Eigenschaft '_id' von undefined nicht lesen.

Ich denke, weil die Verkettung. Dann in BeforeEach, aber ich kann es nicht lösen, kann jemand helfen ?. Vielen Dank.

const expect = require('expect'); 
const request = require('supertest'); 
const{ObjectID} = require('mongodb'); 

const {app} = require('./../server'); 
const {Todo} = require('./../models/todo'); 

if(!module.parent) { 
app.listen(); 
} 

const todos=[{ 
    _id:new ObjectID(), 
    text:"2 test todo" 
}, 
{ 
_id:new ObjectID(), 
text:"1 test todo" 
}]; 

beforeEach((done) => { 
    Todo.remove({}).then(() => { 
    return Todo.insertMany(todos); 
    }).then(() => done()); 
}); 

describe('DELETE /todos/:id',() => { 
    it('most delete a doc', (done) => { 
    let hexId = todos[1]._id.toHexString(); 

    request(app) 
    .delete(`/todos/${hexId}`) 
    .expect(200) 
    .expect((res) => { 
     expect(res.body.todo._id).toBe(hexId); 
    }) 
    .end((err, res) => { 
     if(err) return done(err); 

    Todo.findById(hexId).then((todo) => { 
     expect(todo).toNotExist(); 
     done(); 
    }).catch((e) => done(e)); 

    }); 
    }); 
}); 

Antwort

0

Fehler: nicht Header gesetzt, nachdem sie

gesendet werden -> weil Rückruf (fertig) bereits

Typeerror genannt: Kann nicht Eigentum '_id' undefinierten lesen.

obwohl ich weiß nicht, Typeerror Zeilennummer aber Aspekt Kommentar ist in folgendem Code

beforeEach((done) => { 
    Todo.remove({}).then(() => { 
    return Todo.insertMany(todos); 
    }) 
    .then(() =>{ 
    describe('DELETE /todos/:id',() => { 
     it('most delete a doc', (done) => { 
     let hexId = todos[1]._id.toHexString(); 

     request(app) 
     .delete(`/todos/${hexId}`) 
     .expect(200) 
     .expect((res) => { 
       // make sure you are you getting from req.body 
      expect(res.body.todo._id).toBe(hexId); 
     }) 
     .end((err, res) => { 
      if(err) return done(err); 

     Todo.findById(hexId).then((todo) => { 
      expect(todo).toNotExist(); 
      done(); 
     }).catch((e) => done(e)); 

     }); 
     }); 
    }); 

}); 
Verwandte Themen