最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

我只得到所有数据的一个时间

运维笔记admin15浏览0评论

我只得到所有数据的一个时间

我只得到所有数据的一个时间

我创建与node.js的REST API不express.js框架,数据库我用FS。我在与get方法问题。所有其他方法做工精细。当我试图从目录中的所有JSON文件,我可以搞定一切只有一次,第二次和所有其他时间,没有任何反应,甚至没有一个错误,它只是停留几分钟,在那之后我在Chrome得到这个错误:网:: ERR_EMPTY_RESPONSE,这在Firefox:类型错误:“NetworkError试图获取资源的时候。”获取一个JSON文件工作正常。我认为,问题出在后端。因为我有邮递员同样的问题。

我使用节点10.14.1。据我了解,当我试图从目录中第二次的所有文件,我server.js文件不发送任何响应。和APP在server.js线64 chosenHandler之前停止。

获取处理程序:

// Resources - get
// Required data: none
// Optional data: ID
handlers._resources.get = (data, callback) => {
// Check that the ID is valid
checkId(data.queryStringObject.id)

if (resourceDBId) {
    // Lookup the resource
    _data.read('resources', resourceDBId, (err, data) => !err &&
    data ? callback(ok, data) : callback(notFound, {Error: 'User doesn\'t exist'}))
} else {
    _data.readAll('resources', (err, data) => {
        if (!err && data) {
            if (data.last) {
                resourcesData.push(data.data)
                callback(ok, resourcesData)
            }
            if (!data.last) resourcesData.push(data.data)
        } else callback(internalServerError, {Error: 'Can\'t get all resources'})
    })
}

}

所有的代码是在这里:

回答如下:

在lib / data.js文件ReadAll方法则需要初始化我。因为我是用不确定的,它被认为是全局变量i,并且不进入循环,并且回调不工作,所以反应是不可能的。

我建议你如下更改。

lib.readAll = (dir, callback) => {
fs.readdir(lib.baseDir + dir, (err, data) => {
    if(!err && data) {
        let i = 0;
        while(i < data.length) {
            if (i < data.length - 1) {
                fs.readFile(lib.baseDir + dir + '/' + data[i], 'utf-8', (err, content) => {
                    let parsedContent = helpers.parseJsonToObject(content)
                    err ? callback(err, content) : callback(false, {last: false, data: parsedContent})
                })
            } if (i === data.length - 1) {
                fs.readFile(lib.baseDir + dir + '/' + data[i], 'utf-8', (err, content) => {
                    let parsedContent = helpers.parseJsonToObject(content)
                    err ? callback(err, content) : callback(false, {last: true, data: parsedContent})
                })
            }
            i++
        }
    } else callback(err, data)
})

}

发布评论

评论列表(0)

  1. 暂无评论