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