简体   繁体   English

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

[英]Getting cannot post error in node application

Greeting everyone, I am learning fullstack javascript development via video tutorials i am new to development , requesting you to help me!!大家好,我正在通过视频教程学习全栈 javascript 开发,我是开发新手,请求您帮助我!!

My application have app.js file code is我的应用程序有 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 file code is 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 file in controllers folder code is控制器文件夹中的 userController.js 文件代码是

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

I am using ejs and home.ejs file is having html form when try to submit a form eg我正在使用 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>

Why i am getting an error - Cannot POST /register为什么我收到错误 - 无法 POST /register

You're only using your router for GET requests here:您仅在此处将路由器用于GET请求:

app.get("/", router)

That's why the POST s are not hitting your router at all.这就是为什么POST根本没有击中您的路由器的原因。

You can mount it to handle all methods istead, via app.use() :您可以通过app.use()挂载它以处理所有方法:

app.use("/", router)

Read more about the difference between the two here: Difference between app.use and app.get in express.js在此处阅读有关两者之间区别的更多信息: express.js 中 app.use 和 app.get 之间的区别

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM