ani*_*nil 9 javascript node.js aws-sdk-nodejs nodejs-stream nodejs-server
我正在运行以下代码,但由于以下错误而失败。
列出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}`)
Run Code Online (Sandbox Code Playgroud)
第一个输出是 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
}
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏。
谢谢阿尼什
Mat*_*újo 13
如果这可能对某人有帮助,请尝试使用 objectMode 属性。
类似的东西
const t = new Transform({
objectMode: true, // set this one to true
transform(data, _, done) {
//...your code
}
});
Run Code Online (Sandbox Code Playgroud)
删除这个 res.writeHead(200, { 'Content-Type': 'text/html' });
而不是res.end(data)使用res.send(data)或更好呢res.send({ data })。
编辑 我没有注意到你没有使用快递,试试这个:
res.writeHead(200, { 'Content-Type': 'application/json' });
res.write(JSON.stringify(data));
res.end();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22112 次 |
| 最近记录: |