我正在处理一个保存到mongodb数据库存储的javascript(node.js)示例。
我遇到了一段代码,我无法理解教程的作者究竟在做什么以及为什么要这样做。这只是我缺乏理解,但我真的很想知道这里发生了什么。请参阅下面的代码,并在相关行旁边找到我的评论:
//save new employee
EmployeeProvider.prototype.save = function(employees, callback) {
this.getCollection(function(error, employee_collection) {
if( error ) callback(error)
else {
// This is the portion I have a question on.
// So this is checking to see if the array.length is undefined? Why would the length property be undefined?
if( typeof(employees.length)=="undefined")
// What is going on here exactly?
// It looks like he is initializing and array with employees parameter that was passed in to the save
// function earlier? I've never seen this kind of thing done before. Thoughts?
employees = [employees];
for( var i =0;i< employees.length;i++ ) {
employee = employees[i];
employee.created_at = new Date();
}
employee_collection.insert(employees, function() {
callback(null, employees);
});
}
});
};
感谢您的帮助!
克里斯
答案 0 :(得分:3)
看起来意图允许employees
参数是单个员工或一组员工。如果传递一个雇员对象,它将变为一个元素数组。
答案 1 :(得分:3)
if
语句及其内容(它下面的第一行)基本上说:“如果employees
不是数组,则创建一个具有该名称的新数组,其中包含传入的内容”。这保证了,从那时起,employees
将是一个数组。