为什么我的警报在 javascript 中显示未定义

why my alert shows undefined in javascript

var database = require('../../db');
var rightponame = '1';
var rightdevname = '';
var rightpopassword = '';
var rightdevpassword = '';
database.db.once('open', function() {
  console.log('success');

  var cursor = database.db.collection('user').find({}, {
    _id: 0
  });
  cursor.each(function(err, doc) {
    if (doc != null) {
      rightponame = doc.productOwner;
      rightdevname = doc.developer;
      rightpopassword = doc.popassword;
      rightdevpassword = doc.devpassword;
      console.log(rightponame);
      console.log(rightdevname);
      console.log(rightpopassword);
      console.log(rightdevpassword);
    } else {
      console.log('o');
    }
  });


});

function login() {
  var getusername = document.getElementById("username").value;
  var getpassword = document.getElementById("password").value;

  alert(rightponame);

}

最后,我得到 rightponamerightdevnamerightpopasswordrightdevpassword 值。但是在登录功能中,我在警报中得到了未定义。 为什么?

在JavaScript中,alert仅在浏览器中可用。看来您正在使用 node.js 或类似的东西。试试 console.log,就像你在 db open 上所做的那样。

然后当你检查进程是运行的终端window时,你应该看到console.log的值。

由于 console.log 接受多个值,因此使用可区分的前缀会很有帮助,例如:

console.log('<<<<<<<', rightponame)