- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行一个 SSR React node.js 服务器,我需要一些关于如何解决我的问题的建议。我的 node.js 服务器崩溃/重新启动错误,如窗口未定义等,而不是仅仅记录并打印出 500 错误消息。
这是我的直播:
try {
.......
.......
.......
const markupStream = renderToNodeStream(
<Provider store={store}>
<ConnectedRouter history={history} location={context}>
<App/>
</ConnectedRouter>
</Provider>
);
if (context.url) {
return res.redirect(301, context.url)
}
return fs.createReadStream(htmlFilePath)
.pipe(htmlReplace('#root', markupStream))
.pipe(replaceStream('__SERVER_DATA__', serialize(store.getState())))
.pipe(res);
} catch (err) {
const errMarkup = renderToNodeStream(
<Provider store={store}>
<ConnectedRouter history={history} location={context}>
<Error500 error={err}/>
</ConnectedRouter>
</Provider>
);
logger.log({
level: 'error',
message: `Rendering ${req.originalUrl} fallback to Error render method`,
...{
errorMessage: err.message,
stack: err.stack
}
});
return fs.createReadStream(htmlFilePath)
.pipe(htmlReplace('#root', errMarkup))
.pipe(res.status(500));
} finally {
logger.info(`Request finished ${req.originalUrl} :: ${res.statusCode}`)
end({ route: path, componentName: componentNames[0], code: res.statusCode })
logger.profile(profileMsg);
}
我以为我的 catch 会出现这些错误,但显然不会,有人可以帮我指出正确的方向吗?
更新:1我目前正在尝试:
const readStream = fs.createReadStream(htmlFilePath);
// Should hopefully catch the errors
readStream.on('error', function(err) {
res.end(err);
});
return readStream.pipe(htmlReplace('#root', markupStream))
.pipe(replaceStream('__SERVER_DATA__', serialize(store.getState())))
.pipe(res);
最佳答案
在返回流之前需要先创建流,以便使用它的错误回调函数:
var readStream = fs.createReadStream(filename);
readStream.on('error', function(err) {
res.end(err);
});
return readStream
关于javascript - Node.js createReadStream 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51377995/
我想收到您对使用 fp-ts 的 TaskEither 使用的反馈或其他用于学习目的的函数式编程库: 我在处理nodejs流时使用Promise,以这种方式使用Promise是一个好的解决方案吗?最直
我正在尝试打开一个 img 文件并通过 http 发送它。我读到最好的方法是 creatReadStream,因为它是异步的,而且性能更好。 这是我的代码: var file = fs.createR
我正在尝试执行以下操作: 逐行流式传输 csv 文件。 修改每一行中包含的数据。 流式传输和处理所有行后,完成并继续执行下一个任务。 问题是.on("end")在 .on("data") 之前发生火灾
我是 NodeJS 的新手,我正在尝试从麦克风直播到 MP3 文件,字节正在实时写入 MP3 文件,我希望用户能够真正播放这个 MP3 流文件-瓷砖也。 到目前为止,我为阅读流所做的(当然是在伟大社区
我正在尝试读取上传的 .csv 文件并将其存储在数组中,以便将数据批量插入到我的数据库中,我正在使用 csv-parser package 和用于文件流的 fs 。 router.post('/fil
我现在正在学习 Node.js,使用“Beginning Node.js”教科书。 书中的示例在命令提示符下无法正常执行。 (我正在使用 Ubuntu 18.04 和 Node v9.4.0,这本书是
如何设置一个等于 fs.createReadStream 返回的数据的变量,以便我可以打印出该变量,然后获取文件内容。 var rs = fs.createReadStream('file.txt',
https://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options .我还有一个一般性问题。 我可以假设除非文档中另有说明,否则提到的
为了使用 nodejs 逐行读取文本文件,我有以下代码: var lineReader = require('readline').createInterface({ input: require(
我需要使用 formData 将 pdf 发送到 api。我下载了 pdf,登录后如下所示:如果我fs.writeFileSync它是完全可读的。但我想尝试将它传递给 api 而不必用 fs 编写它,
我正在使用 DropBox API 上传文件。要将文件上传到保管箱,我将执行以下步骤: 首先将文件从 form 上传到服务器上的本地目录。 使用fs.createReadStream从本地目录读取文件
根据 official document , createReadStream 可以接受缓冲区类型作为 path 参数。 但是很多问答只提供了如何通过string发送参数的解决方案,而不是buffer
抱歉,我有几个关于 createReadStream() 的问题。 基本上,我正在做的是动态构建一个文件,并在完成后使用 fs 将其流式传输给用户。我正在使用 .pipe() 来确保我的节流正确(如果
我正在尝试使用我的 NodeJS 应用程序将文件从我的 s3 存储桶发送到客户端。这是我目前所拥有的: import { S3 } from '@aws-sdk/client-s3'; const B
我正在运行一个 SSR React node.js 服务器,我需要一些关于如何解决我的问题的建议。我的 node.js 服务器崩溃/重新启动错误,如窗口未定义等,而不是仅仅记录并打印出 500 错误消
我正在尝试编写一个测试用例,以判断此代码何时会发出错误: s3.getObject({ Bucket: mediaBucket, Key: mediaId, }).create
我更喜欢使用 Promise 而不是回调,因此我使用了 util.promisify。 `use strict`; const util = require(`util`), request
目前,我正在尝试向 on 事件传递一个额外的参数,从 CSV 文件获取数据后将触发该事件。我尝试将其作为额外参数添加到回调函数中,但它总是未定义。 fs.createReadStream(values
我尝试了这个简单的代码 var fs = require('fs'); var stream = fs.createReadStream(fileName); stream.on('readable'
如果我只想一次读取 10 个字节,或者一次读取一行数据(查找换行符),是否可以像这样传递 fs.createReadStream() 选项 var options = {} var strea
我是一名优秀的程序员,十分优秀!