在 express 的多条路线中使用 mongoose
Using mongoose in multiple routes with express
我已经在 server.js 中设置了我的代码,它运行良好。我现在正尝试通过将代码拆分成不同的路径来清理 server.js 代码。
我正在使用 express.Router 来 link 上传文件,但我很难理解为什么我的 post 路线正在刹车。
在server.js文件中
// dependencies
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyparser.urlencoded({extended: true}));
app.set('view engine', 'ejs');
// routes
constpurchaseOrders = require("./routes/purchaseOrders");
app.use("/purchaseOrders", purchaseOrders);
// listen
app.listen(3000, function(){
console.log("Server started on port 3000");
});
在purchaseOrders.js文件中
// dependencies
const express = require("express");
let router = express.Router();
const mongoose = require("Mongoose");
const connection = require("../routes/mongoose.js");
const Po = require("../routes/schemas.js:);
// post route
router.post("/addpo, function(req.res){
//long code lines here
po.save();
res.redirect("/");
});
module.exports = router;
所以对于这条路线,我在 route.get 上有以下终点:
10.0.0.15:3000/purchaseOrders/addpo
现在提交表单时出现问题,它returns“不能POST /addpo”并且终点显示:
10.0.0.15:3000/addpo
在我的 ejs 文件中,我将表单设置如下:
<form action="/addpo" method="post">
在 mongoose.js 连接上,我导出如下:
module.exports = mongoose;
在 schemas.js 我导出:
module.exports = Po;
我知道我在路由方面做错了,但我不知道为什么。
非常感谢:-)
如果您需要 /addpo
工作路径,请在 server.js
上更改此路径:
app.use("/", purchaseOrders);
不
app.use("/purchaseOrders", purchaseOrders);
其他选项
server.js:
app.use("/addpo", purchaseOrders);
purchaseOrders.js
router.post("/", function(req.res){
如果您在调用路由器之前添加路由,它将被添加在它的前面。
因此,您可以使用 html 中的路线 action="/addpo"
。
我已经在 server.js 中设置了我的代码,它运行良好。我现在正尝试通过将代码拆分成不同的路径来清理 server.js 代码。
我正在使用 express.Router 来 link 上传文件,但我很难理解为什么我的 post 路线正在刹车。
在server.js文件中
// dependencies
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyparser.urlencoded({extended: true}));
app.set('view engine', 'ejs');
// routes
constpurchaseOrders = require("./routes/purchaseOrders");
app.use("/purchaseOrders", purchaseOrders);
// listen
app.listen(3000, function(){
console.log("Server started on port 3000");
});
在purchaseOrders.js文件中
// dependencies
const express = require("express");
let router = express.Router();
const mongoose = require("Mongoose");
const connection = require("../routes/mongoose.js");
const Po = require("../routes/schemas.js:);
// post route
router.post("/addpo, function(req.res){
//long code lines here
po.save();
res.redirect("/");
});
module.exports = router;
所以对于这条路线,我在 route.get 上有以下终点:
10.0.0.15:3000/purchaseOrders/addpo
现在提交表单时出现问题,它returns“不能POST /addpo”并且终点显示:
10.0.0.15:3000/addpo
在我的 ejs 文件中,我将表单设置如下:
<form action="/addpo" method="post">
在 mongoose.js 连接上,我导出如下:
module.exports = mongoose;
在 schemas.js 我导出:
module.exports = Po;
我知道我在路由方面做错了,但我不知道为什么。
非常感谢:-)
如果您需要 /addpo
工作路径,请在 server.js
上更改此路径:
app.use("/", purchaseOrders);
不
app.use("/purchaseOrders", purchaseOrders);
其他选项
server.js:
app.use("/addpo", purchaseOrders);
purchaseOrders.js
router.post("/", function(req.res){
如果您在调用路由器之前添加路由,它将被添加在它的前面。
因此,您可以使用 html 中的路线 action="/addpo"
。