我在使用 Phusion Passenger 和 Express.js 时遇到问题,路由器不工作并且没有给我任何类型的错误
尝试使用 Node 版本 16 和 14 的主机,以及使用 Node 16(Cent OS)的专用服务器
Express版本为:4.18.2
const express = require("express");
const app = express();
const router = express.Router();
// domain.com/backend/
app.use('/backend/test', (req, res) => {
res.json({ message: 'test' })
})
app.get("/backend/test2", ({req, res}) => {
res.json({ message: "test2" })
})
router.get("/backend/testrouter", ({req, res}) => {
res.json({ message: "testrouter" })
})
router.get("/backend/testrouter2", ({req, res}) => {
res.json({ message: "testrouter2" })
})
app.use((req, res) => {
res.status(404).json({ message: 'error' });
});
app.listen(3000);
前两个端点工作,而后两个不工作
你应该使用路由器作为应用程序的中间件
const express = require("express");
const app = express();
const router = express.Router();
// domain.com/backend/
app.use('/backend/test', (req, res) => {
res.json({ message: 'test' })
})
app.get("/backend/test2", ({req, res}) => {
res.json({ message: "test2" })
})
router.get("/backend/testrouter", ({req, res}) => {
res.json({ message: "testrouter" })
})
router.get("/backend/testrouter2", ({req, res}) => {
res.json({ message: "testrouter2" })
})
app.use(router) // <== add this line
app.use((req, res) => {
res.status(404).json({ message: 'error' });
});
app.listen(3000);