You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
2.5 KiB
JavaScript

const express = require("express");
const mongoose = require("mongoose");
const app = express();
const port = 3001;
// Connecting to MongoDB Atlas
mongoose.connect("mongodb+srv://ronreciproco123:admin123@cluster0.9ao1xec.mongodb.net/b322_to-do?retryWrites=true&w=majority", {
useNewUrlParser: true,
useUnifiedTopology: true
});
let db = mongoose.connection;
db.on("error", console.error.bind(console, "connection error"));
db.once("open", () => console.log("We're connected to the cloud database"));
// [Section] Mongoose Schemas
// Schema is the blueprint of our "task" documents
const taskSchema = new mongoose.Schema({
name: String,
status: {
type: String,
default: "pending"
}
});
// [Section] Models
const Task = mongoose.model("Task", taskSchema);
// Middlewares
app.use(express.json());
app.use(express.urlencoded({extended:true}));
app.post("/tasks", (req, res) => {
Task.findOne({name: req.body.name}).then((result, error) => {
if(result != null && result.name == req.body.name){
return res.send("Duplicate task found!");
} else {
let newTask = new Task({
name: req.body.name
});
newTask.save().then((saveTask, saveErr) => {
if(saveErr){
return console.error(saveErr);
} else {
return res.status(201).send("New task created!");
}
})
}
})
});
// Activity Output
app.post('/signup', async (req, res) => {
try {
const { username, password } = req.body;
console.log('Received data from Postman:');
console.log('Username:', username);
console.log('Password:', password);
// Create a new user
const newUser = new User({ username, password });
// Save the user to the database
await newUser.save();
res.status(201).json({ message: 'User created successfully' });
} catch (err) {
console.error('Error:', err);
res.status(500).json({ error: err.message });
}
});
// app.get("/tasks", (req, res) => {
// Task.find({}).then((result, error) => {
// if(error){
// return console.log(error);
// } else {
// return res.status(200).json({
// data: result
// })
// }
// });
// });
if(require.main === module){
app.listen(port, () => console.log(`Server running at port ${port}`));
}
module.export = app;