Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性';getDate';_Javascript_Node.js_Mongoose_Keystone - Fatal编程技术网

Javascript 无法读取属性';getDate';

Javascript 无法读取属性';getDate';,javascript,node.js,mongoose,keystone,Javascript,Node.js,Mongoose,Keystone,我正在使用keystone进行我的项目。在“Post”数据库中有publishedDate,我想用下面的代码格式化它 function formatDate(date) { var monthNames = [ "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık

我正在使用keystone进行我的项目。在“Post”数据库中有publishedDate,我想用下面的代码格式化它

function formatDate(date) {
    var monthNames = [
        "Ocak", "Şubat", "Mart",
        "Nisan", "Mayıs", "Haziran", "Temmuz",
        "Ağustos", "Eylül", "Ekim",
        "Kasım", "Aralık"
    ];

    var day = date.getDate();
    var monthIndex = date.getMonth();
    var year = date.getFullYear();

    return day + ' ' + monthNames[monthIndex] + ' ' + year;
}


var q = keystone.list('Post').model.findOne({
        state: 'published',
        slug: locals.filters.post,
    }).populate('author categories');

    q.exec(function (err, result) {
        Object.keys(result).forEach(function (key) {
            var element = result[key];              
            element.newDate = formatDate(element.publishedDate);
        });

        locals.data.post = result;
        next(err);
    });

});
当我运行project时,会发生错误。但我知道“publishedDate”是一个日期值

 Mongoose model 'error' event fired on 'Post' with error:
 Cannot read property 'getDate' of undefined TypeError: Cannot read property 'getDate' of undefined
从您的代码:

var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
您确定在
date
对象中确实有一个
getDate()
date.getMonth()
getFullYear()
,因为我还没有看到您在哪里实例化了日期
新日期()

也许你想经历一下,也许会有帮助。
var today=新日期();
var day=today.getDate();
var month=today.getMonth()+1//一月是零!
var year=today.getFullYear();
如果(天更换

var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
进入


element.newDate=formatDate(新日期(element.publishedDate));
。您将字符串传递给一个需要日期对象的函数,它似乎是
元素。publishedDate
未设置。它表示未定义的
属性“getDate”,因此您应该尝试找出它是
未定义的原因
只需检查元素是否具有
publish edDate
属性。如果没有,它将将是
未定义的
,您将在获取时得到错误。整个
对象.keys(结果).forEach
事情是可疑的。您已经执行了
findOne
。它是否真的会返回一个对象,其中每个属性都引用一个具有
publishedDate
属性的对象?这似乎很奇怪。我希望您执行
find
并获得一个数组。
var day = new Date(date).getDate();
var monthIndex = new Date(date).getMonth();
var year = new Date(date).getFullYear();