fileUpload.js約束はコールバックで
var Uploader = require('s3-image-uploader');
var express = require('express');
var config = require('./../config.js');
var Promise = require('promise');
var uploader = new Uploader({
aws: {
key: config.awsKey,
secret: config.awsSecret
},
websockets: false
});
exports.fileUpload = function(fileName) {
new Promise(function(resolve, reject) {
uploader.upload({
fileId: 'someUniqueIdentifier',
bucket: 'quflip',
source: './public/images/' + fileName,
name: fileName
},
function(data) { // success
console.log('upload success:', resolve);
resolve(data);
},
function(errMsg, errObject) { //error
reject(false);
});
});
};
logintest.jsここで、私はにconsole.logで未定義の値を取得していますされて何が起こっているのか
var awsUpload = require('./../config/fileUpload.js');
var userData = function(req, res) {
console.log("true/false" + awsUpload.fileUpload(profile_image));
を未定義の結果になります。コールバックがデータを渡していないことを意味します。これに
exports.fileUpload = function (fileName) {
new Promise(function(resolve, reject) {
// ...
});
};
:どのように私はあなたが実際に約束を返すように関数がその後、これを変更したい場合は、さらに目的
これは、あなたが約束と非同期の概念を誤解しているようです。 'awsUpload.fileUpload(profile_image).then(data => {console.log(" true/false "+ data)});'のようなことをする必要があります。 Promiseを返す必要があります – FirstOne
あなたの 'fileUpload'関数は何も返しません。 – jcaron