I kept getting 404 error in the console
login.js:25 Server responded with status code: 404 [email protected]:25″
the backend works fine itself but with react it keeps giving errors, I already used cors and express.json()
my react code looks like this
<code>try {
const response = await axios.post(
"http://localhost:3000/api/users/login",
{ email, password }
);
const { token } = response.data;
localStorage.setItem("token", token);
console.log("Login Successful");
// Redirect or navigate to another page upon successful login
} catch (err) {
if (err.response) {
console.error(
"Server responded with status code:",
err.response.status
);
setError("Invalid email or password. Please try again.");
} else if (err.request) {
console.error("No response received:", err.request);
setError("No response received from server");
} else {
console.error("Error during request setup:", err.message);
setError("Error during request setup");
}
}
</code>
<code>try {
const response = await axios.post(
"http://localhost:3000/api/users/login",
{ email, password }
);
const { token } = response.data;
localStorage.setItem("token", token);
console.log("Login Successful");
// Redirect or navigate to another page upon successful login
} catch (err) {
if (err.response) {
console.error(
"Server responded with status code:",
err.response.status
);
setError("Invalid email or password. Please try again.");
} else if (err.request) {
console.error("No response received:", err.request);
setError("No response received from server");
} else {
console.error("Error during request setup:", err.message);
setError("Error during request setup");
}
}
</code>
try {
const response = await axios.post(
"http://localhost:3000/api/users/login",
{ email, password }
);
const { token } = response.data;
localStorage.setItem("token", token);
console.log("Login Successful");
// Redirect or navigate to another page upon successful login
} catch (err) {
if (err.response) {
console.error(
"Server responded with status code:",
err.response.status
);
setError("Invalid email or password. Please try again.");
} else if (err.request) {
console.error("No response received:", err.request);
setError("No response received from server");
} else {
console.error("Error during request setup:", err.message);
setError("Error during request setup");
}
}
my backend code looks like this
<code>app.use("/api/users", userRoutes);
router.post("/login", login);
exports.login = async (req, res) => {
const { email, password } = req.body;
try {
const user = await User.findOne({ email });
if (!user) {
return res.status(404).json({ error: "User not found" });
}
const isPasswordMatch = await bcrypt.compare(password, user.password);
if (!isPasswordMatch) {
return res.status(401).json({ error: "Invalid email or password" });
}
const token = jwt.sign({ _id: user._id }, process.env.JWT_secret, {
expiresIn: "360000000",
});
return res.json({ token });
} catch (err) {
return res.status(500).json({ error: "Tite" });
}
};
</code>
<code>app.use("/api/users", userRoutes);
router.post("/login", login);
exports.login = async (req, res) => {
const { email, password } = req.body;
try {
const user = await User.findOne({ email });
if (!user) {
return res.status(404).json({ error: "User not found" });
}
const isPasswordMatch = await bcrypt.compare(password, user.password);
if (!isPasswordMatch) {
return res.status(401).json({ error: "Invalid email or password" });
}
const token = jwt.sign({ _id: user._id }, process.env.JWT_secret, {
expiresIn: "360000000",
});
return res.json({ token });
} catch (err) {
return res.status(500).json({ error: "Tite" });
}
};
</code>
app.use("/api/users", userRoutes);
router.post("/login", login);
exports.login = async (req, res) => {
const { email, password } = req.body;
try {
const user = await User.findOne({ email });
if (!user) {
return res.status(404).json({ error: "User not found" });
}
const isPasswordMatch = await bcrypt.compare(password, user.password);
if (!isPasswordMatch) {
return res.status(401).json({ error: "Invalid email or password" });
}
const token = jwt.sign({ _id: user._id }, process.env.JWT_secret, {
expiresIn: "360000000",
});
return res.json({ token });
} catch (err) {
return res.status(500).json({ error: "Tite" });
}
};
New contributor
Shin Kurt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
2