Promise返回null
我正在创建一个名为kim-api的NPM包,但是,当我将图像路径传递给模块时,它返回null
。
这是.upload()
方法的代码:
module.exports = (image) => {
return new Promise((resolve, reject) => {
if (!image) throw new TypeError('No image provided.');
const request = require('request'),
fs = require('fs'),
options = {
method: "POST",
url: "",
port: 443,
headers: {
"Content-Type": "multipart/form-data"
},
formData : {
"image": fs.createReadStream(image)
}
};
request(options, (err, res, body) => {
if (err) throw (err);
try {
let parsed = JSON.parse(body);
parsed.url = `/${parsed.info.image_id}/`
resolve(parsed);
} catch(error) {
reject(err);
}
});
})
}
这是我用来测试包的内容:
const kim = require('kim-api')
const path = require('path');
console.log(path.join(__dirnane, 'check.png')); // returns image path
kim.upload(path.join(__dirname, 'check.png')).then(img => {
console.log('Image url: ' + img.url);
}).catch(err => console.error(err))
kim.uploads().then(data => {
console.log('Total uploads: ' + JSON.stringify(data))
});
这是输出:
C:\Users\User\Desktop\Code Things\test-kim\check.png
null
Total uploads: {"status":200,"data":{"uploads":4622}}
- 文件路径是正确的。
.upload()
方法返回null
。.uploads()
方法返回预期输出。
有人会碰巧知道是什么让我的代码没有返回解析的输出,或是什么使它返回null
?
提前致谢!
回答如下:那是愚蠢的。
} catch(error) {
reject(err);
}
这部分代码显然没有正确编写。将err
更改为error
允许我实际查看并修复错误。抱歉!
Promise返回null
我正在创建一个名为kim-api的NPM包,但是,当我将图像路径传递给模块时,它返回null
。
这是.upload()
方法的代码:
module.exports = (image) => {
return new Promise((resolve, reject) => {
if (!image) throw new TypeError('No image provided.');
const request = require('request'),
fs = require('fs'),
options = {
method: "POST",
url: "",
port: 443,
headers: {
"Content-Type": "multipart/form-data"
},
formData : {
"image": fs.createReadStream(image)
}
};
request(options, (err, res, body) => {
if (err) throw (err);
try {
let parsed = JSON.parse(body);
parsed.url = `/${parsed.info.image_id}/`
resolve(parsed);
} catch(error) {
reject(err);
}
});
})
}
这是我用来测试包的内容:
const kim = require('kim-api')
const path = require('path');
console.log(path.join(__dirnane, 'check.png')); // returns image path
kim.upload(path.join(__dirname, 'check.png')).then(img => {
console.log('Image url: ' + img.url);
}).catch(err => console.error(err))
kim.uploads().then(data => {
console.log('Total uploads: ' + JSON.stringify(data))
});
这是输出:
C:\Users\User\Desktop\Code Things\test-kim\check.png
null
Total uploads: {"status":200,"data":{"uploads":4622}}
- 文件路径是正确的。
.upload()
方法返回null
。.uploads()
方法返回预期输出。
有人会碰巧知道是什么让我的代码没有返回解析的输出,或是什么使它返回null
?
提前致谢!
回答如下:那是愚蠢的。
} catch(error) {
reject(err);
}
这部分代码显然没有正确编写。将err
更改为error
允许我实际查看并修复错误。抱歉!