首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >http://localhost:3001/users/signup 404 (未找到)

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

Stack Overflow用户
提问于 2022-06-20 22:24:24
回答 1查看 65关注 0票数 0

你好,我尝试为mysql创建带有sequelize的路由用户。但是我想测试我的请求,但是当我在我的邮递员上发送http://localhost:3001时,我给我发送了http://localhost:3001/users/signup 404 (没有找到)。我所有的用户路由似乎都是正确的,我运行我的nodemon有if问题,如果我运行htt://localhost:3001/user,我可以查看请求测试。

这是我的server.js

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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;

我的路线

代码语言:javascript
运行
复制
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;

我的模特们

代码语言:javascript
运行
复制
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;
};

和我的控制器:用户

代码语言:javascript
运行
复制
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" });

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-20 22:37:28

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72693570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档