承诺返回null

时间:2019-02-15 13:45:43

标签: javascript node.js

我正在创建一个名为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: "https://kim.kieranhowland.co.uk/api/upload",
                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 = `https://kim.kieranhowland.co.uk/uploads/${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

谢谢!

1 个答案:

答案 0 :(得分:0)

那真是愚蠢。

} catch(error) {
    reject(err);
}

这部分代码显然编写不正确。将err更改为error使我可以查看并修复错误。抱歉!