【发布时间】:2023-03-18 05:05:02
【问题描述】:
我正在使用没有 express.js 框架的 node.js 创建 REST API,对于数据库我使用 fs。我在使用 get 方法时遇到问题。所有其他方法都可以正常工作。当我尝试从目录中获取所有 json 文件时,我只能一次、第二次和所有其他时间获取所有内容,没有任何反应,甚至没有错误,它只是卡住了几分钟,之后我在 chrome 中收到此错误: net::ERR_EMPTY_RESPONSE,这在 Firefox 中:TypeError:“尝试获取资源时出现网络错误。”。获取一个 json 文件可以正常工作。我认为问题出在后端。因为我和邮递员有同样的问题。
我正在使用节点 10.14.1。据我了解,当我第二次尝试从目录中获取所有文件时,我的 server.js 文件不发送任何响应。并且应用在 server.js 第 64 行中的 selectedHandler 之前停止。
获取处理程序:
// 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'})
})
}
}
所有代码都在这里:https://github.com/FreeDevStan/sale
【问题讨论】:
-
请在此处发布相关代码:在问题/答案中指向外部源代码不被认为是好的做法,此处...
-
它的代码很多,所以我觉得在github上看会容易得多
-
"and for database I use fs" 你到底是什么意思?
fs用于与文件系统交互,文件不是数据库。 -
文件夹是数据库。 .json 文件是数据库记录/文档