Reputation: 127
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.
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
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