我正在努力让这个页面正常工作。在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部署时,我可以完美地看到我的前端,但我不能注册(发送post请求) here's an image attached of my back end console
编辑:添加路由/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;谢谢您抽时间见我!
发布于 2021-10-25 16:06:20
根据您附加的控制台图像,您正在向/register路径发送post请求,但是您没有在您的中间件中向app.use注册/register,您可以发送您的./routes/auth.js文件吗?如果在./routes/auth.js文件中有路径/auth/register的请求处理程序,也许应该将注册请求发送到/auth/register路径。
发布于 2021-11-14 11:42:43
您很可能将表单设置为
操作=/注册method=post
而不是
操作=/api/用户/注册method=post
https://stackoverflow.com/questions/69711146
复制相似问题