我正在学习nodeJS,遇到了节点模块fs
有一行代码如下:
export function stat(
path: PathLike,
callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void
): void;
在我使用stat的文件中,有以下代码:
fs.stat(filepath, (err, stats) => {
if (err) {
res.statusCode = 404
res.setHeader("Content-Type", "text/html")
res.end(
"<html><body><h1>Error 404: " + fileUrl + " not found</h1></body></html>"
)
return
}
})
我提供回调函数,但是我想知道我的函数在哪里接收、err、和stats对象。
我假设stat必须有一个函数体,它调用我定义的函数并提供对象。
发布于 2021-03-30 05:11:28
你是对的。fs.stat()
的代码在得到需要的结果时会调用回调,这是一个非常常见的nodejs / Javascript模式。
fs
中的代码大多是原生操作系统代码,而不是Javascript代码。它是nodejs的内部,它的目的是访问机器的文件系统。因此,使用调试器进行调试可能会让人感到困惑。
关于代码的另一个方面的注释: nodejs / express可以轻松地从express函数中执行404错误。如果使用参数调用next()
,请将错误报告给网站访问者或API用户。就像这样:
const createError = require('http-errors')
...
fs.stat(filepath, (err, stats) => {
if (err) return next(createError(404, fileUrl + ' not found'))
...
})
发布于 2021-03-30 23:16:04
生成错误的唯一ID,在响应中返回它。
记录错误(错误)对象(控制台、记录器等)使用这个生成的ID来跟踪情况。(响应中的错误对象是丑陋的,并且公开了您所称的堆栈或内部。)在error对象中,您将尽可能找到详细信息。
https://stackoverflow.com/questions/66871357
复制相似问题