ai didi

javascript - "chunk"参数必须是字符串类型或 Buffer 的实例

转载 作者:行者123 更新时间:2023-12-03 06:57:29 24 4
gpt4 key购买 nike

我正在运行以下代码,但失败并出现以下错误。
用于列出 bucker 内所有对象的 AWS 代码

const http = require('http');
const host = '127.0.0.1';
const port = 5000;
const path = require('path')
const url = require('url')
const fs = require('fs')
var AWS = require('aws-sdk');



const laptopDate = JSON.parse(fs.readFileSync(`${__dirname}/data/data.json`, `utf-8`))

AWS.config.update({accessKeyId: '***', secretAccessKey: '***', region: 'ap-south-1'});
s3 = new AWS.S3({apiVersion: '2006-03-01'});

var params = {
Bucket: 'bucket-name'
}

const server = http.createServer(function(req, res){
const path = url.parse(req.url, true).pathname
const id = url.parse(req.url, true).query.id

if (path === 'bucket' || path === '/')
s3.listObjects(params, function (err, data) {
if(err) throw err;
res.writeHead(200, { 'Content-Type': 'text/html' });
//const output = JSON.parse(data)
console.log(data)
res.end(data)
});
});

server.listen(port, host, function(req, res) {
console.log(`Server is listening on ${host} and ${port}`)
第一个输出是 console.log 会按预期显示所有内容。
但是,将输出渲染到屏幕的 res.end 失败并出现以下错误。
The "chunk" argument must be of type string or an instance of Buffer. Received an instance of Object
at ServerResponse.end (_http_outgoing.js:752:13)
at Response.<anonymous> (D:\js\Extra\starter\index.js:30:13)
at Request.<anonymous> (D:\js\Extra\starter\node_modules\aws-sdk\lib\request.js:364:18)
at Request.callListeners (D:\js\Extra\starter\node_modules\aws-sdk\lib\sequential_executor.js:106:20)
at Request.emit (D:\js\Extra\starter\node_modules\aws-sdk\lib\sequential_executor.js:78:10)
at Request.emit (D:\js\Extra\starter\node_modules\aws-sdk\lib\request.js:683:14)
at Request.transition (D:\js\Extra\starter\node_modules\aws-sdk\lib\request.js:22:10)
at AcceptorStateMachine.runTo (D:\js\Extra\starter\node_modules\aws-sdk\lib\state_machine.js:14:12)
at D:\js\Extra\starter\node_modules\aws-sdk\lib\state_machine.js:26:10
at Request.<anonymous> (D:\js\Extra\starter\node_modules\aws-sdk\lib\request.js:38:9) {
message: 'The "chunk" argument must be of type string or an instance of Buffer. Received an instance of Object',
code: 'ERR_INVALID_ARG_TYPE',
time: 2020-05-18T08:39:24.916Z
}

最佳答案

删除此 res.writeHead(200, { 'Content-Type': 'text/html' });
而不是 res.end(data)使用 res.send(data)或者更好res.send({ data }) .

编辑
我没有注意到你没有使用 express ,试试这个:

res.writeHead(200, { 'Content-Type': 'application/json' });
res.write(JSON.stringify(data));
res.end();

关于javascript - "chunk"参数必须是字符串类型或 Buffer 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61865764/

24 4 0
文章推荐: javascript - 刷新列表时 Hook useCallback 继续使用旧值
文章推荐: python-2.7 - sqlite3 python 2.7 如何从 sqlite3 启用更详细的错误报告(异常)?
文章推荐: powershell - 针对 powershell 的 x64 与 x86 可变性进行编程的最佳方法是什么
文章推荐: javascript - React useCallback with debounce 适用于旧值,如何获得实际状态值?
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com