在 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"

Express docs