如何在Nodejs Mocha中声明全局数组?

时间:2019-10-12 11:48:31

标签: javascript node.js mocha chai

我想声明一个数组来存储来自数据库的数据。我可以在控制台上成功看到结果。结果正在保存数据库数据。我想将结果分配给数组,但是当我这样做时它变成空的。正确的方法是什么?

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 个答案:

答案 0 :(得分:3)

您的“ console.log”行在发出实际的Web请求之前执行,因此它记录您在

中初始化的空值
global.postsFromDb = [];//should be filled with db data.

请阅读异步Javascript here的细微差别。