Javascript 用于节点js中的循环?

Javascript 用于节点js中的循环?,javascript,node.js,express,Javascript,Node.js,Express,我使用for循环从mongodb中检索数据并将其显示在浏览器上,但问题是它只会第一次迭代并停止。所以我只得到第一个条目作为输出。然而,它在控制台日志中给出了正确的输出。请帮忙 var movieSchema1 = new mongoose.Schema({ name:String, address:String, location:String }); var user=mongoose.model('movie', movieSchema1, 'movie'); for (va

我使用for循环从mongodb中检索数据并将其显示在浏览器上,但问题是它只会第一次迭代并停止。所以我只得到第一个条目作为输出。然而,它在控制台日志中给出了正确的输出。请帮忙

var movieSchema1 = new mongoose.Schema({
  name:String,
  address:String,
  location:String
});

var user=mongoose.model('movie', movieSchema1, 'movie');

for (var i = 0; i < user.length; i++) {
  res.json("iteration " + i);
  res.json('name:' + user[i].name + user[i].address);
}
var movieSchema1=newmongoose.Schema({
名称:String,
地址:String,
位置:字符串
});
var user=mongoose.model('movie',movieSchema1',movie');
对于(变量i=0;i
您可以使用
find()
方法从架构接收所有对象

var response;  

user.find({}, function(err, users){
       if(err) throw err;
       if(users.length != 0){
          response = users.map((user, i) => {
             return {
               index: i,
               name: user.name + ' ' + user.address
             };             
       }
    })
    for(var i = 0; i < response.length; i++){
       res.write('Key: ' i + ' the value: ' response[i] + '\n');
    }
    res.end();
var响应;
user.find({},函数(err,users){
如果(错误)抛出错误;
如果(users.length!=0){
响应=用户.map((用户,i)=>{
返回{
索引:i,,
名称:user.name+“”+user.address
};             
}
})
对于(变量i=0;i
您还应该只使用一次
res.json()
,因为它将在发送头后返回
无法设置头
错误

有关
res.json()
的信息,请参阅。您可以使用
find()
方法从架构接收所有对象

var response;  

user.find({}, function(err, users){
       if(err) throw err;
       if(users.length != 0){
          response = users.map((user, i) => {
             return {
               index: i,
               name: user.name + ' ' + user.address
             };             
       }
    })
    for(var i = 0; i < response.length; i++){
       res.write('Key: ' i + ' the value: ' response[i] + '\n');
    }
    res.end();
var响应;
user.find({},函数(err,users){
如果(错误)抛出错误;
如果(users.length!=0){
响应=用户.map((用户,i)=>{
返回{
索引:i,,
名称:user.name+“”+user.address
};             
}
})
对于(变量i=0;i
您还应该只使用一次
res.json()
,因为它将在发送头后返回
无法设置头
错误


如其他人所说,请参阅以获取有关res.json()的信息,为您的响应构建一个对象,然后res.json()创建它。因为您试图发送一个数组,所以只需使用.map()转换每个数组:

//turn the array of users into the objects we want to send
const responseData = user.map( (movie, i) => {
   return {
      iteration: i,
      name: movie.name + ' ' + movie.address
   };
});

//this converts the array to a string for you
res.json( responseData );

正如其他人所说,为您的响应构建一个对象,然后res.json()对其进行转换。因为您试图发送一个数组,所以只需使用.map()对每个数组进行转换:

//turn the array of users into the objects we want to send
const responseData = user.map( (movie, i) => {
   return {
      iteration: i,
      name: movie.name + ' ' + movie.address
   };
});

//this converts the array to a string for you
res.json( responseData );


用户定义/初始化的位置在哪里?未显示在上面的代码段中。res.json只希望被调用一次。请先建立结果,或者为此使用数组。@Keith请帮助我?如何操作?@BrianDriscoll ya it is initialized
res.json()
发送一个对象,然后结束响应。您不能在同一个响应对象上多次调用该对象并期望它工作。在循环中构建对象,然后
res.json()
it结尾处。用户定义/初始化的位置在哪里?没有显示在上面的代码段中。res.json只希望被调用一次。首先建立结果,可能为此使用数组。@Keith请帮助我?如何做?@BrianDriscoll ya it is initialized
res.json()
发送一个对象,然后结束响应。您不能在同一个响应对象上多次调用该对象并期望它工作。在循环中构建对象,然后
res.json()
res
放在末尾。我们可以看到您的代码吗?res
放在哪里@RadhikaObhan@turmuka,您执行与OP相同的操作,尝试为每个用户发送响应。使用
map
创建一个对象数组,然后发送。没错,我刚才看到了错误,马上编辑@Alexmac我们可以看到您的代码吗?
res
转到@RadhikaObhan@turmuka,您执行与OP相同的操作,尝试为每个用户发送响应。使用
map
创建一个对象数组,然后发送。是的,我刚刚看到了错误,将在几秒钟内对其进行编辑@alexmacYes这是可行的,但它以json格式提供输出,我只想用O显示键和值ut json格式?需要进行哪些更改donenice answer!@Duncanthakery您需要获取每个索引和值,然后将其写入响应@RadhikaObhan check my update如果不需要json,为什么要使用res.json()?@DuncanThacker我可以使用什么替代方法只显示键和值数据?是的,这是可行的,但它以json格式提供输出,我只想显示没有json格式的键和值?需要进行哪些更改?请回答!@DuncanThacker你需要获得每个索引和值,然后将其写入响应@RadhikaObhan check my update如果您不需要JSON,为什么要使用res.JSON()?@DuncanThacker我可以使用什么替代方法只显示键和值数据?