Tell us what’s happening:
Always the 16th test case not working no matter how hard I try and it gets more and more irritating help me
###Your project link(s)
solution: http://localhost:3000
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36
Challenge Information:
Back End Development and APIs Projects - Exercise Tracker
ILM
October 11, 2024, 1:45pm
2
Please share your code so you can receive help
const express = require('express')
const app = express()
const cors = require('cors')
require('dotenv').config()
const mongoose = require('mongoose');
const { Schema } = mongoose;
mongoose.connect(process.env.DB_URL)
const UserSchema = new Schema({
username: String,
});
const User = mongoose.model("User", UserSchema);
const ExerciseSchema = new Schema({
user_id: { type: String, required: true },
description: String,
duration: Number,
date: Date,
});
const Exercise = mongoose.model("Exercise", ExerciseSchema);
app.use(cors())
app.use(express.static('public'))
app.use(express.urlencoded({ extended: true }))
app.get('/', (req, res) => {
res.sendFile(__dirname + '/views/index.html')
});
app.get("/api/users", async (req, res) => {
const users = await User.find({}).select("_id username");
if (!users) {
res.send("No users");
} else {
res.json(users);
}
})
app.post("/api/users", async (req, res) => {
console.log(req.body)
const userObj = new User({
username: req.body.username
})
try{
const user = await userObj.save()
console.log(user);
res.json(user)
}catch(err){
console.log(err)
}
})
app.post("/api/users/:_id/exercises", async (req, res) => {
const id = req.params._id;
const { description, duration, date } = req.body
try{
const user = await User.findById(id)
if (!user){
res.send("Could not find user")
} else {
const exerciseObj = new Exercise({
user_id: user._id,
description,
duration,
date: date ? new Date(date) : new Date()
})
const exercise = await exerciseObj.save()
res.json({
_id: user._id,
username: user.username,
description: exercise.description,
duration: exercise.duration,
date: new Date(exercise.date).toDateString()
})
}
}catch(err){
console.log(err);
res.send("There was an error saving the exercise")
}
})
app.get("/api/users/:_id/logs", async (req, res) => {
const { from, to, limit } = req.query;
const id = req.params._id;
const user = await User.findById(id);
if(!user){
res.send("Could not find user")
return;
}
let dateObj = {}
if (from) {
dateObj["$gte"] = new Date(from)
}
if (to){
dateObj["$lte"] = new Date(to)
}
let filter = {
user_id: id
}
if(from || to){
filter.date = dateObj;
}
const exercises = await Exercise.find(filter).limit(+limit ?? 500)
const log = exercises.map(e => ({
description: e.description,
duration: e.duration,
date: e.date.toDateString()
}))
res.json({
username: user.username,
count: exercises.length,
_id: user._id,
log
})
})
const listener = app.listen(process.env.PORT || 3000, () => {
console.log('Your app is listening on port ' + listener.address().port)
})
Idk why 16th test case ain’t working but all of them do work
Your code is passing for me with my own DB.
I would suggest you try using Gitpod, Replit, or Glitch. Some people seem to have issues with date related tests when running it locally. Make sure your OS clock is correct as well.