簡體   English   中英

http://localhost:3001/users/signup 404(未找到)

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

您好,我嘗試使用 mysql 的 sequelize 創建路由用戶。 但是我想測試我的請求,但是當我向郵遞員發送 http://localhost:3001 時,我向我發送了 http://localhost:3001/users/signup 404(未找到)。 我所有的用戶路由似乎都是正確的我運行我的 nodemon 服務器沒有問題,如果我運行 htt://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; };

還有我的控制器:用戶

 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提出請求

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM