gpt4 book ai didi

node.js - 使用node.js、needle、busboy/multer将文件从一台服务器发送到另一台服务器

转载 作者:太空宇宙 更新时间:2023-11-04 02:26:04 24 4
gpt4 key购买 nike

我想将一个小图像从一台服务器移动到另一台服务器(都运行 Node )。当我搜索时,我还没有找到足够的东西。 This该帖子仍未得到答复。

当我开始试验时,我向第一台服务器写入了以下内容:

app.post("/move_img", function(req, res) {
console.log("post handled");
fs.readFile(__dirname + "/img_to_move.jpg", function(err, data) {
if (err) throw err;
console.log(data);
needle.post(server2 + "/post_img", {
data: data,
name : "test.jpg"
}, function(result) {
console.log(result);
res.send("ok");
});
});
});

这部分似乎正在工作,因为我可以在同一服务器中写入数据(使用 fs.writeFile)重新创建 img。

现在,当我尝试处理其他服务器中的帖子时,我遇到了问题。

服务器2:

app.post('/post_img', [ multer({ dest: './uploads/images'}), function(req, res) {

console.log("body ",req.body) // form fields
console.log("files ",req.files) // form files
res.send("got it");
}]);

这样我在文件中得到一个空对象,在正文中得到以下内容: { 'headers[Content-Type]': 'application/x-www-form-urlencoded', 'headers[Content-Length]': '45009' }

我想我可以使用 Busboy 作为替代方案,但我无法让它工作。欢迎任何建议、教程。

最佳答案

我使用以下代码解决了我的问题,

服务器1(使用针):

app.post("/move_img", function(req, res) {
console.log("post handled")

var data = {
image:{
file: __dirname + "/img_to_move.jpg",
content_type: "image/jpeg"}
}

needle.post(server2 + "/post_img", data, {
multipart: true
}, function(err,result) {
console.log("result", result.body);
});
})

服务器2:

app.use('/post_img',multer({
dest: '.uploads/images',
rename: function(fieldname, filename) {
return filename;
},
onFileUploadStart: function(file) {
console.log(file.originalname + ' is starting ...')
},
onFileUploadComplete: function(file) {
console.log(file.fieldname + ' uploaded to ' + file.path)
}
}));

app.post('/post_img', function(req, res) {

console.log(req.files);
res.send("File uploaded.");

});

服务器 1 的替代方案如下(使用表单数据模块):

var form = new FormData();
form.append('name', 'imgTest.jpg');
form.append('my_file', fs.createReadStream(__dirname + "/img_to_move.jpg"));

form.submit(frontend + "/post_img", function(err, result) {
// res – response object (http.IncomingMessage) //
console.log(result);
});

关于node.js - 使用node.js、needle、busboy/multer将文件从一台服务器发送到另一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30349885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com