Моя проблема:
Я создаю приложение Nuxt и тестирую конечные точки API.
Например, когда я использую Почтальон и отправляю этот запрос с POST:
localhost:3000/api/login
Все в порядке, и я получаю ожидаемый результат обратно, но когда я пробую его на моей стороне клиента с этим :
axios
.post("/api/login", {
email: email,
password: passwort
})
.then(res => {
console.log(res);
});
На вкладке сети в Google chrome я вижу, что запрос находится на рассмотрении, и я не знаю, почему.
Вот мой index.js
файл:
const express = require("express");
const app = express();
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
mongoose.connect(
"mongodb+srv://mydata/realtime?retryWrites=true&w=majority",
{
useNewUrlParser: true,
useUnifiedTopology: true
}
);
app.use(bodyParser.json());
const routes = require("./routes/routes");
app.use(routes);
module.exports = {
path: "/api",
handler: app
};
Это моя папка маршрутов:
const { Router } = require("express");
const router = Router();
import createUser from "../controllers/user";
import checkLogin from "../controllers/login";
/* GET users listing. */
router.post("/login", checkLogin);
router.post("/register", createUser);
module.exports = router;
и мой login.js
файл:
const bcrypt = require("bcrypt");
import User from "../models/user";
export default async function checkLogin(req, res) {
const user = await User.findOne({ email: req.body.email });
if (!user) {
return res.status(404).json({
success: false,
message: "Diese E-Mail konnte nicht verifiziert werden."
});
}
const checkPw = bcrypt.compareSync(req.body.password, user.password);
if (checkPw) {
res.status(200).json({
success: true,
message: "Erfolgreich eingeloggt"
});
} else {
return res.status(403).json({
success: false,
message: "Falsche Passwort"
});
}
}
РЕДАКТИРОВАТЬ:
Я обнаружил проблему, я забыл ключевое слово this
в данных, которые я передаю:
axios
.post("/api/login", {
email: this.email,
password: this.passwort
})
.then(res => {
console.log(res);
});