node.js - 在heroku上部署时前后没有连接
问题描述
我正在努力使此页面正常工作。Heroku 上的部署对于两个应用程序(服务器和前端)都是成功的。但不知何故,我的正面和背面在这里没有正确连接 mi node.js | index.js 文件
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
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 部署时,我可以完美地看到我的前端,但我无法注册(发送帖子请求) 这是我的后端控制台的附加图像
编辑:添加路线/auth.js
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;
感谢您的时间!
解决方案
根据您附加的控制台图像,您正在向 /register 路径发送 post 请求但是您没有使用 app.use 在中间件中注册 /register,您可以发送您的 ./routes/auth.js 文件吗?如果您的 ./routes/auth.js 文件中有路径 /auth/register 的任何请求处理程序,也许您应该将注册请求发布到 /auth/register 路径。
推荐阅读
- java - InvalidKeySpecException:如何从 .der 文件中提取私钥?
- scale - 监控并提醒 prometheus 指标数量异常
- excel - 具有 3 个增值税和储蓄变量的 Excel 公式,停留在第三个变量上
- php - 如何在 PHP 回显输出中正确编写 HTML 标记
- java - android 应用程序中的 SQLite 函数
- android - 从 Source 构建领域并在 Android 项目中使用 AAR
- android - AdMob 的 RewardedVideoAd 会破坏观看视频后启动的活动
- c++ - “函数”不是 C++ 类型
- php - 当 url 包含点或冒号时,PHP curl 请求会导致白页
- module - 我不能在同一个文件中包含所有 trait 和 impl;如何放置在单独的文件中?