无法阅读财产' 0'未定义的

时间:2017-04-26 23:01:33

标签: javascript node.js openstack pkgcloud

当我试图使用pkgcloud并且属性length未定义时,我得到了一个奇怪的未定义错误:

var pkgcloud = require('pkgcloud');
var Q = require('q');
router.get('/', function(req, res, next) {

var conn = pkgcloud.compute.createClient({
    provider: 'openstack', // required
    username: 'demo', // required
    password: 'azerty', // required
    authUrl: 'http://192.168.0.242:5000' ,
    region_name :'RegionOne'// required
});
console.log(conn);

在这个阶段,我可以想象对象conn的不同方法,但错误是在for循环中生成的:

var d = Q.defer();
conn.getImages(function(err, images) {

    for (var i=0; i<images.length; i++) {
        console.log("id: " + images[i].id);
        console.log("name: " + images[i].name);
        console.log("created: " + images[i].created);
        console.log("updated: " + images[i].updated);
        console.log("status: " + images[i].status + "\n");
    }
    if (err) {
        console.log("erreur");
        d.reject(err);
    } else {
        console.log("juste");
        d.resolve();
    }
});
  res.render('index', { title: 'Express' });
});

1 个答案:

答案 0 :(得分:0)

如果您收到的是一系列物品,请考虑使用console.table(); - 这样可以节省您的时间。正如大家所说,首先进行错误检查然后如果没有错误打印输出。我不知道SO是否会在代码段中呈现表格,因此请检查浏览器的console以获取表格输出。

const img = [{
  id: 1,
  name: "cat",
  created: '21-07-99',
  updated: '21-07-99',
  status: "new"
}, {
  id: 2,
  name: "dog",
  created: '26-07-00',
  updated: '26-07-00',
  status: "new"
}, {
  id: 3,
  name: "rabbit",
  created: '16-02-10',
  updated: '26-04-10',
  status: "modified"
}];

con = (err, image) => {
  if (err) {
    console.log("ERROR", err);
    return;
  }
    console.table(image);
 
};
con("404 not found",img); //error 404 will print err
con(null, img); //no error so img