【问题标题】:Issue with form action to connect to routing (Nodejs, Express)连接到路由的表单操作问题(Nodejs,Express)
【发布时间】:2020-10-24 07:39:17
【问题描述】:

我有一个使用 Express 的 nodejs 项目。我遇到了一个问题,经过几个小时后我弄清楚了它是什么,但我不知道如何解决它。

我想将一个表单提交到数据库,但我认为表单 action="" 没有找到正确的路径。

在我的整个项目中一切正常,所有不在嵌套目录中的页面,如下面的 add-shop.ejs。他们发布数据很好。我也在路由器上做了个测试

我要列出我的目录结构

| public
| models
         | shopModel.js
| routes
         | shop.js
         | index.js
| views
         | shop
                | add-shop.ejs
         | index.ejs
         | contact.ejs
| app.js

views/shop/add-shop.ejs 中的表单,带有表单操作

<form action="/add-shop" method="post" class="post-form">
  <form stuff to do>
</form>

我的 app.js(只是路由设置,我在上面评论过)

const mainRoutes = require('./routes');
app.use(mainRoutes);

//This is the routes for shop route
const shopRoutes = require('./routes/shop.js');
app.use(shopRoutes);

我的路线:routes/shop.js

const express = require('express');
const router = express.Router();
const Shops = require('../models/shopModel.js');

router.get('/add-shop', (req, res) => {
    //getting the page successfully
});

router.post(('/add-shop', (req, res) => {
    //adding stuff not so successfully
}));

module.exports = router;

我在发送表单后一直收到 404 错误,即使我从 /add-shop 页面发送表单,它也找不到页面 /add-shop!是目录结构的原因吗?

【问题讨论】:

标签: javascript node.js express


【解决方案1】:

你的代码中有太多的括号

router.post(('/add-shop', (req, res) => {
    //adding stuff not so successfully
}));

需要

router.post('/add-shop', (req, res) => {
    //adding stuff not so successfully
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 2017-07-08
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多