0
我想寫一段我的上傳代碼作爲服務,因爲我需要在我的軟件中的整體功能。我的項目使用sails.js - 這裏的文檔爲service。如何外包作爲服務的上傳功能notde.js
在控制器中,我得到了這個代碼,它上傳了一個文件,成功之後它調用saveTheCampaign()函數並將文件信息保存在數據庫中。
req.file('logo').upload({
maxBytes: 10000000,
saveAs: function (uploadFile, cb) {
cb(null, Date.now() + uploadFile.filename);
},
dirname: sails.config.appPath + '/assets/images/campaign/'
}, function (err, uploadedFiles) {
if (err) {
return res.json(500, err);
}
else if (uploadedFiles.length === 0) {
// proceed without files
res.json({ error: "No image found for upload!"})
}
else {
// Success: handle uploaded file
var fileName = uploadedFiles[0].fd.split('\\');
params["logo"] = fileName[fileName.length - 1];
sails.controllers.campaign.saveTheCampaign(params, req, res);
}
});
saveTheCampaign: function (params, req, res) { //...}
現在我想寫這個片段作爲服務。我的服務名爲UploadService並具有一個名爲upload()的函數,services可以帶兩個參數,一個選項和一個回調函數。所以,我想這個打電話給我服務的上傳功能:
UploadService.upload(options, sails.controllers.campaign.saveTheCampaign(params, req, res));
的問題是,回調函數的PARAMS(參數,可以REQ,RES)在調用的時候是不知道,我讓他們上傳功能完成後。我該如何處理?
謝謝你,它的工作現在對我來說有些變化之後。普通的Promise和這個Q庫有什麼區別? https://jsfiddle.net/ah3322/396o81xb/ – Suisse