获取无法在节点应用程序中发布错误

时间:2020-03-07 13:07:25

标签: javascript node.js model-view-controller ejs

问候大家,我正在通过视频教程学习全栈javascript开发,我是开发的新手,请您帮助我!

我的应用程序的app.js文件代码为

const express = require("express")
const app = express()
const router = require("./router")
app.set("views", "views")
app.set("view engine", "ejs")
app.use(express.static("public"))
app.get("/", router)
app.listen(3000)

Router.js文件代码为

    const express = require("express")
    const router = express.Router()
    const userController = require("./controllers/userController.js")
    router.get("/", userController.home)
    router.post("/register", userController.register)
    module.exports = router
控制器文件夹代码中的

userController.js文件是

exports.register = function(req, res){
    res.send("Thanks for trying to register")
}
exports.home = function(request, response){
    response.render("home-guest")
}

我正在使用ejs,尝试提交表单时,home.ejs文件具有html表单 例如

<form action="/register" method="POST" id="registration-form">
<div class="form-group">
          <label for="username-register" class="text-muted mb-1"><small>Username</small></label>
          <input name="username" id="username-register" class="form-control" type="text" placeholder="Pick a username" autocomplete="off">
        </div>
    </form>

为什么我遇到错误-无法POST / register

1 个答案:

答案 0 :(得分:1)

您仅将路由器用于此处的GET请求:

app.get("/", router)

这就是POST根本没有碰到路由器的原因。

您可以通过app.use()挂载它来处理所有方法:

app.use("/", router)

在此处详细了解两者之间的区别:Difference between app.use and app.get in express.js