如何在 Nodejs mocha 中声明一个全局数组?
How to declare a global array in Nodejs mocha?
我想声明一个数组来存储来自数据库的数据。我可以在控制台上看到结果 successuly.Result 正在保存 db data.I 想将结果分配给数组但是当我这样做时它变成空的。什么是正确的方法?
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();
})
})
您的 "console.log" 行在 发出实际 Web 请求之前 执行,因此它会记录您在
中初始化的空值
global.postsFromDb = [];//should be filled with db data.
请阅读异步的细微差别 Javascript here。
我想声明一个数组来存储来自数据库的数据。我可以在控制台上看到结果 successuly.Result 正在保存 db data.I 想将结果分配给数组但是当我这样做时它变成空的。什么是正确的方法?
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();
})
})
您的 "console.log" 行在 发出实际 Web 请求之前 执行,因此它会记录您在
中初始化的空值global.postsFromDb = [];//should be filled with db data.
请阅读异步的细微差别 Javascript here。