0
我正在调用我的REST API,但是让第一次调用返回一个空数组,第二次调用它只返回所需的结果。这里是我的文件。为什么我没有在首次调用我的REST API时获取数据
mongodb.js用于连接到MongoDB的数据库
var MongoClient =require('mongodb').MongoClient;
var dburl = 'mongodb://localhost:27017/test';
module.exports.connect = function connect(callback){
MongoClient.connect(dburl, function(err, conn){
/* exports the connection */
if(err)
{
callback(err);console.log(err)
}
else
{
callback(undefined,conn.collection('person'));
//console.log(conn)
}
});
};
getUsers.js从数据库中检索文档
const mongodb = require('.././mongodb/mongodb');
var v=[];
module.exports.getUser=function(callback)
{
mongodb.connect(function(err,db)
{
if (err)
{
console.log(err)
}
else
{
data(db,function (docs) {
//console.log(v)
callback(v)
})
// console.log(v)
}
});
}
function data(db,callback) {
db.find().forEach((docs)=>{
v.push(docs)
})
callback(v);
}
server.js为由于启动服务器
const express = require('express');
const bodyparser = require('body-parser')
const getUsers = require('./users/getUsers');
const insertUsers = require('./users/insertUsers');
const findUsers = require('./users/findUsersEmail');
const delusers=require('./users/deleteUsers')
const moduser=require('./users/updateUser')
const app = express();
app.use(bodyparser.json())
app.get('/person', (req, res) =>
{ console.log(res.statusCode)
if(res.statusCode==200)
{
getUsers.getUser(function (userList){
res.json(userList);
console.log(userList);
})
}})
app.listen(4569,()=>console.log('server has started on 4501'))
你为什么要在请求本身检查'statusCode'? –
我不认为在这里检查请求代码很重要。关键是我必须使res.send()与getUsers.getUser()同步,以便它在getUsers.getUser()完成其任务时执行 –