CBCH
CBCH

Reputation: 127

datePosted always '0000-00-00 00:00:00'

This is my javascript code for writing reviews. It used to work, but now the 'datePosted' column always gives me the default '0000-00-00 00:00:00' output.

writeReview(request, respond) {
        var now = new Date();
        var reviewObject = new Review(null, request.body.reviewUserId, request.body.reviewResId, request.body.review,
            request.body.rating, request.body.numberOfLikes, now.toString());
        var sql = "INSERT INTO resreview.reviews (reviewUserId, reviewResId, review, rating, numberOfLikes, datePosted) VALUES(?,?,?,?,?,?)";

        var values = [reviewObject.getReviewUserId(), reviewObject.getReviewResId(), reviewObject.getReview(),
        reviewObject.getRating(), reviewObject.getNumberOfLikes(), reviewObject.getDatePosted()];
        db.query(sql, values, function (error, result) {
            if (error) {
                throw error;
            }
            else {
                respond.json(result);
            }
        });
    }

This is the internals for my 'Review.js' file:

"use strict"

class Review {
    constructor(reviewId, reviewUserId, reviewResId, review, rating, numberOfLikes, datePosted) {
        this.reviewId = reviewId;
        this.reviewUserId = reviewUserId;
        this.reviewResId = reviewResId;
        this.review = review;
        this.rating = rating;
        this.numberOfLikes = numberOfLikes;
        this.datePosted = datePosted;
    }
    //add the get methods here
    getReviewId() {
        return this.reviewId;
    }
    getReviewUserId() {
        return this.reviewUserId;
    }
    getReviewResId() {
        return this.reviewResId;
    }
    getReview() {
        return this.review;
    }
    getRating() {
        return this.rating;
    }
    getNumberOfLikes() {
        return this.numberOfLikes;
    }
    getDatePosted() {
        return this.datePosted;
    }
    //id is automatically-incremented
    setReviewId(reviewId) {
        this.reviewId = reviewId;
    }
    setReviewUserId(reviewUserId) {
        this.reviewUserId = reviewUserId;
    }
    setReviewResId(reviewResId) {
        this.reviewResId = reviewResId;
    }
    setReview(review) {
        this.review = review;
    }
    setRating(rating) {
        this.rating = rating;
    }
    setNumberOfLikes(numberOfLikes) {
        this.numberOfLikes = numberOfLikes;
    }
    setDatePosted(datePosted) {
        this.datePosted = datePosted;
    }
}
module.exports = Review;

This is my data shown in MySQL database. enter image description here

I have checked with my previously working files and there seems to be no issue with the codes. And I am not using PHP for this. Here I am using DATETIME as my datatype unlike my previous files which is VARCHAR for the datePosted column, could that be the issue? Thanks for your help!

Upvotes: 0

Views: 1095

Answers (1)

Volkan Albayrak
Volkan Albayrak

Reputation: 439

You should convert it to mysql datetime as mentioned in the comment section. Or, since you use current date, just use "Now()" (without quotes) as value in the sql statement itself.

Upvotes: 2

Related Questions