首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在heroku上部署时,前后不能连接

问在heroku上部署时,前后不能连接
EN

Stack Overflow用户
提问于 2021-10-25 15:52:05
回答 2查看 55关注 0票数 1

我正在努力让这个页面正常工作。在Heroku上的部署对两个应用程序(服务器和前端)都是成功的。但不知何故,我的前面和后面不能正确地连接在这里mi node.js | index.js文件

代码语言:javascript
复制
const express = require("express");
const app = express();

const mongoose = require("mongoose");
const authRoute = require("./routes/auth");
const userRoute = require("./routes/users");
const postRoute = require("./routes/posts");
const categoryRoute = require("./routes/categories");
const multer = require("multer");
const path = require("path");
require('dotenv').config();


app.use(express.json());
app.use(express.static('public')); //added to search public folder
app.use("/images", express.static(path.join(__dirname, "/images")));


mongoose
  .connect((process.env.MONGO_URL), {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true, // just a recomended line if there's an error
    useFindAndModify:true
  })
  .then(console.log("Connected to MongoDB"))
  .catch((err) => console.log(err));

const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, "images");
  },
  filename: (req, file, cb) => {
    cb(null, req.body.name);
  },
});

const upload = multer({ storage: storage });

//added all
app.get("/", (req, res) => {
  res.status(200).json({
    status: 'ok',
    message: 'Hello! I am working perfecly!(get request)'
  });
});






app.post("/api/upload", upload.single("file"), (req, res) => {
  res.status(200).json("File has been uploaded");
});

app.use("/api/auth", authRoute);
app.use("/api/users", userRoute);
app.use("/api/posts", postRoute);
app.use("/api/categories", categoryRoute);

const PORT = process.env.PORT || 80;

app.listen(PORT, () => console.log(`Server is listening on port ${PORT}...`));

这里是heroku日志--tail

代码语言:javascript
复制
d=POST path="/register" host=bloghiv-back.herokuapp.com request_id=90b09eda-548d-45dd-b99c-ae52f2ee046a fwd="200.126.224.126" dyno=web.1 connect=0ms service=9ms status=404 bytes=392 protocol=https
2021-10-25T15:42:28.073784+00:00 heroku[router]: at=info method=GET path="/static/css/main.3986ef85.chunk.css" host=bloghiv-back.herokuapp.com request_id=8f306df2-0e35-48df-9367-3f6450c6faa8 fwd="200.126.224.126" dyno=web.1 connect=0ms service=1ms 
status=304 bytes=238 protocol=https
2021-10-25T15:42:28.071575+00:00 heroku[router]: at=info method=GET path="/static/js/main.f6840f02.chunk.js.map" host=bloghiv-back.herokuapp.com request_id=72752344-da2c-407f-991e-2596b0074e05 fwd="200.126.224.126" dyno=web.1 connect=0ms service=2ms status=200 bytes=33455 protocol=https
2021-10-25T15:42:28.082929+00:00 heroku[router]: at=info method=GET path="/static/js/2.2d16cffa.chunk.js.map" host=bloghiv-back.herokuapp.com request_id=14798d98-e88f-463d-8a51-d0dbe94dc664 fwd="200.126.224.126" dyno=web.1 connect=0ms service=10ms 
status=200 bytes=967615 protocol=https
2021-10-25T15:42:28.280289+00:00 heroku[router]: at=info method=GET path="/static/css/main.3986ef85.chunk.css.map" host=bloghiv-back.herokuapp.com request_id=b63816f2-7554-4294-97c1-b8fde1e5ef82 fwd="200.126.224.126" dyno=web.1 connect=0ms service=2ms status=200 bytes=25377 protocol=https
2021-10-25T15:42:31.301468+00:00 heroku[router]: at=info method=POST path="/register" host=bloghiv-back.herokuapp.com request_id=a7ed0d2a-d689-4353-b78f-a104ed5d0814 fwd="200.126.224.126" dyno=web.1 connect=0ms service=1ms status=404 bytes=392 protocol=https

当我打开后端Heroku部署时,我可以完美地看到我的前端,但我不能注册(发送post请求) here's an image attached of my back end console

编辑:添加路由/auth.js

代码语言:javascript
复制
const router = require("express").Router();
const User = require("../models/User");
const bcrypt = require("bcrypt");

//REGISTER
router.post("/register", async (req, res) => {
  try {
    const salt = await bcrypt.genSalt(10);
    const hashedPass = await bcrypt.hash(req.body.password, salt);
    const newUser = new User({
      username: req.body.username,
      email: req.body.email,
      password: hashedPass,
    });

    const user = await newUser.save();
    res.status(200).json(user);
  } catch (err) {
    res.status(500).json(err);
  }
});

//LOGIN
router.post("/login", async (req, res) => {
  try {
    const user = await User.findOne({ username: req.body.username });
    !user && res.status(400).json("Wrong credentials!");

    const validated = await bcrypt.compare(req.body.password, user.password);
    !validated && res.status(400).json("Wrong credentials!");

    const { password, ...others } = user._doc;
    res.status(200).json(others);
  } catch (err) {
    res.status(500).json(err);
  }
});

module.exports = router;

谢谢您抽时间见我!

EN

回答 2

Stack Overflow用户

发布于 2021-10-25 16:06:20

根据您附加的控制台图像,您正在向/register路径发送post请求,但是您没有在您的中间件中向app.use注册/register,您可以发送您的./routes/auth.js文件吗?如果在./routes/auth.js文件中有路径/auth/register的请求处理程序,也许应该将注册请求发送到/auth/register路径。

票数 0
EN

Stack Overflow用户

发布于 2021-11-14 11:42:43

您很可能将表单设置为

操作=/注册method=post

而不是

操作=/api/用户/注册method=post

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

https://stackoverflow.com/questions/69711146

复制
相关文章

相似问题

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