Hello I've tried to create my route users with sequelize for mysql. But I want to test my request but when I send http://localhost:3001 on my postman I send me http://localhost:3001/users/signup 404 (Not Found). All my users route seems correct I run my nodemon server withou problem and if I run htt://localhost:3001/users I can watch request test
Here is my 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}`)
);
my 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;
my route
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;
And my models
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; };
And my controllers: 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
提出请求
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.