我正在創建一個節點服務器,可以將文件上傳到節點服務器,然後發送到也在使用節點的存儲服務器。 要做到這一點,我使用的表單數據模塊頁上介紹這種方法:通過請求模塊傳輸節點JS文件
var formData = {
my_field: 'my_value',
my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),
};
request.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log('Upload successful! Server responded with:', body);
});
我的問題是,當我嘗試寫的存儲服務器上的文件,它將創建一個具有內容的文本文件[對象目的]。
這裏是我的代碼:
main.js
var form = new formData();
form = {
'oldFileName': oldName,
'newFileName': newName,
'file': fs.createReadStream(FILEPATH),
};
request.post({url:'http://127.0.0.1:9001/upload', form: form}, function(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
});
storage.js
app.post('/upload', function(req,res){
//Filenames are displayed without problem
console.log(req.body.newFileName);
console.log(req.body.oldFileName);
fs.writeFile('./testing/' + req.body.newFileName, req.body.file, function(err) {
if(err) {
return console.log(err);
}
})
我敢肯定,我失去了一些東西真的很明顯,但我似乎無法讓它工作。
我認爲你必須使用'multer'或類似的庫來接受'storage.js'中的'multipart/form-data'' –
我試過了(抱歉應該提到它),但是'multer'沒有出現在表格中識別文件 –