简体   繁体   中英

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

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM