Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误节点类型错误:无法读取属性';需求';发送时未定义的_Javascript_Node.js - Fatal编程技术网

Javascript 错误节点类型错误:无法读取属性';需求';发送时未定义的

Javascript 错误节点类型错误:无法读取属性';需求';发送时未定义的,javascript,node.js,Javascript,Node.js,我在这里发疯了。我正在尝试使用需要放在帖子正文中的参数来执行帖子请求。。此对象只有一个属性步骤。我通过使用for、yield和promise来实现这一点,我得到了这个错误。。 响应未定义。。为什么?谢谢 controller.js function postItems(req, res, next){ eventService.getItems() .then(response => Promise.all(function*(){ const eventT

我在这里发疯了。我正在尝试使用需要放在帖子正文中的参数来执行帖子请求。。此对象只有一个属性步骤。我通过使用for、yield和promise来实现这一点,我得到了这个错误。。 响应未定义。。为什么?谢谢

controller.js

function postItems(req, res, next){
    eventService.getItems()
    .then(response => Promise.all(function*(){
        const eventType = response.items.filter(type => type.type == 'LIVE')

        for(var i = 10; i < eventType.length; i++){
              const res = eventService.postItems(nameFilter[i])
              yield res
        }
    }()))
    .then(responses => {
        Promise.all(responses.map(response => res.send(response))) //fails here
    })
    .catch(error => {
        console.log('error')
        next(error)
    })
}
app.js

const express = require('express')
const bodyParser = require('body-parser')
const itemsController = require('../controller/itemsController')
const saveController = require('../controller/saveController')

const app = express()

.use(bodyParser.urlencoded({extended : true}))
.use(bodyParser.json())


.get('/api/v1/items', itemsController.getItems)

.get('/api/v1/save', saveController.postItems)

.use(function(error, req, res, next){
    console.log('error', error)
})

module.exports = app

我在这里看到的一个问题是,您正在调用
response.send
多次。在内部,它调用
response.end()
,这不允许进一步调用
response.send
。在您的情况下,应该使用
response.write


参考资料:

对于
循环,在
之后,请返回
res
响应的值是多少?我不知道为什么它是未定义的。尝试在
responses=>{…}
@VikashSingh
res
中添加
console.log(responses)
仅在
for
循环的范围内。@VikashSingh他们在生成器中生成它…?@VikashSingh至少在循环内声明的常量值。我尝试使用
responses.map(res.write)和throw
无法读取未定义的“@agustinwaldbotvonbassenhei”的属性“finished”,是否可以在此处发布整个错误堆栈跟踪?也许我们可以通过出现问题的文件来识别问题
const express = require('express')
const bodyParser = require('body-parser')
const itemsController = require('../controller/itemsController')
const saveController = require('../controller/saveController')

const app = express()

.use(bodyParser.urlencoded({extended : true}))
.use(bodyParser.json())


.get('/api/v1/items', itemsController.getItems)

.get('/api/v1/save', saveController.postItems)

.use(function(error, req, res, next){
    console.log('error', error)
})

module.exports = app