http://localhost:3001/users/signup 404 (Not Found)



你好,我已经尝试创建我的路由用户与mysql的sequelize。但我想测试我的请求,但当我发送http://localhost:3001上我的邮差我发送我http://localhost:3001/users/signup 404(未找到)。我运行我的nodemon服务器没有问题,如果我运行http://localhost:3001/users,我可以观察请求测试

这是我的server.js

const http = require("http");
const app = require("./app");
const normalizePort = (val) => {
const port = parseInt(val, 10);
if (isNaN(port)) {
return val;
}
if (port >= 0) {
return port;
}
return false;
};
const port = normalizePort(process.env.PORT || "3001");
app.set("port", port);
const errorHandler = (error) => {
if (error.syscall !== "listen") {
throw error;
}
const address = server.address();
const bind =
typeof address === "string" ? "pipe " + address : "port: " + port;
switch (error.code) {
case "EACCES":
console.error(bind + " requires elevated privileges.");
process.exit(1);
break;
case "EADDRINUSE":
console.error(bind + " is already in use.");
process.exit(1);
break;
default:
throw error;
}
};
const server = http.createServer(app);
server.on("error", errorHandler);
server.on("listening", () => {
const address = server.address();
const bind = typeof address === "string" ? "pipe " + address : "port " + port;
console.log("Listening on " + bind);
});
server.listen(port, () =>
console.log(`Server listening at http://localhost:${port}`)
);

我app.js

const express = require("express");
//crééer un application express
const path = require("path");
const models = require("./models");
//variable d'environnement
require("dotenv").config();
console.log(process.env);
const morgan = require("morgan");
//mysql importation connexion
const app = express();
app.use(morgan("dev"));
//import des routes
const authRoutes = require("./routes/user");
//intercepter toute requête d'un contenttype.json
app.use(express.json());
// middlewear general qui s'applique à toute les roots qui permet de gerer les CORS
app.use((req, res, next) => {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content, Accept, Content-Type, Authorization"
);
res.setHeader(
"Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE, PATCH, OPTIONS"
);
next();
});
//Gestion de la ressource images de façon statique
app.use("/images", express.static(path.join(__dirname, "images")));
//routes
app.use("/api/users", authRoutes);
// pour exporter l'application/constante pour acceder aux fichiers depuis notre server node
module.exports = app;

我的路线

const express = require("express");
const router = express.Router();
const userCtrl = require("../controllers/users");
router.post("/signup", userCtrl.signup);
router.post("/login", userCtrl.login);
module.exports = router;

和我的模特

const { Model } = require("sequelize");
module.exports = (Sequelize, DataTypes) => {
class User extends Model {
toJSON() {
return {
...this.get(),
};
}
}
User.init(
{
id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4 }, //A universally unique identifier (UUID) , UUIDV4 Random Generation
nom: { type: DataTypes.STRING, allowNull: false },
prenom: { type: DataTypes.STRING, allowNull: false },
email: {
type: DataTypes.STRING,
allowNull: false,
validate: { notNull: true, notEmpty: true, isEmail: true },
},
status: { type: DataTypes.STRING, allowNull: false },
password: { type: DataTypes.STRING, required: true },
},
{ Sequelize, tableName: "users", modelName: "User" }
);
return User;
};

和我的控制器:users

const bcrypt = require("bcrypt");
const jwt = require("jsonwebtoken");
const User = require("../models/users");
const db = require("../config/db");
//la requête SQL pour envoyer les données dans la table user
exports.signup = (req, res) => {
bcrypt
.hash(req.body.password, 10)
.then((hash) => {
const user = new User({
email: req.body.email,
password: hash,
});
db.query("INSERT INTO users SET ?", user, (error, results) => {
if (error) {
console.log(error);
res.json({ error });
} else {
console.log("results");
console.log(results);
res.json({ message: "utilisateur enregistré" });
}
});
})
.catch((error) => res.status(500).json({ error }));
};
//la requête SQL pour comparer les données dans la table user
exports.login = (req, res) => {
const email = req.body.email;
db.query("SELECT * FROM user WHERE email = ?", email, (error, results) => {
if (error) {
console.log(error);
console.log("error");
res.json({ error });
} else {
console.log("result");
console.log(results);
res.json({ message: "email présent dans la base de donnée" });
}
});
};
console.log({ email: "pas d'erreur" });

您的用户路由是api/users/,所以您应该向http://localhost:3001/api/users/signup发出请求

最新更新