Как объявить глобальный массив в Nodejs mocha? - PullRequest
0 голосов
/ 12 октября 2019

Я хотел бы объявить массив для хранения данных, поступающих из базы данных. я могу видеть результат на консоли успешно. Результат содержит данные в БД. Я хочу присвоить результат массиву, но он становится пустым, когда я это сделал. Какой правильный путь?

describe("Test", function () {

    it("Should Update Particular Post Only", (done) => {

        global.postsFromDb = [];//should be filled with db data. 
         chai.request(server)
            .get("/posts")
            .end((err, result) => {
                global.postsFromDb = result.body.slice(); // Doesn't fill global array 
                done();
            })

        console.log( global.postsFromDb);


        var updatedPost = {
            "_id": global.postsFromDb[1]._id,
            "title": "Updated From Test"
        }

        chai.request(server)
            .patch("/posts" + updatedPost)
            .send(updatedPost)
            .end((err, result) => {
                result.should.have.status(200)
                console.log("Updated Particlar Todo Post using / Object ::::", result.body)
                done();
            })
        done();

    })        
})

1 Ответ

3 голосов
/ 12 октября 2019

Ваша строка "console.log" выполняется до фактического веб-запроса, поэтому он регистрирует пустое значение, которое вы инициализируете в

global.postsFromDb = [];//should be filled with db data.

Пожалуйста, ознакомьтесь с нюансамиАсинхронный Javascript здесь .

...