简体   繁体   English

Node.js Express把手发布404错误'/ checkout'

[英]Nodejs express handlebars post 404 error '/checkout'

I'm building a shopping cart project using Node, Express, handlebars and MongoDB. 我正在使用Node,Express,handlesbars和MongoDB构建购物车项目。 Currently, when I attempt to submit a form, using Jquery, I receive a 404 error for my '/checkout' file. 当前,当我尝试使用Jquery提交表单时,我的'/ checkout'文件收到404错误。 Originally, I used return false to prevent the form from submitting before it receives the data. 最初,我使用return false来防止表单在接收数据之前提交。 In an attempt to fix the issue, I tried using event.preventDefault , as well. 为了解决此问题,我也尝试使用event.preventDefault On another forum, someone suggested that my crsf protection is not creating the token properly. 在另一个论坛上,有人建议我的crsf保护未正确创建令牌。 I worked with the route and added to my view and finally the hbs form. 我使用这条路线,并添加到视图和hbs表单中。 None of these attempts appear to have solved my issue. 这些尝试似乎都没有解决我的问题。

This is a link to my gist. 这是我的要旨的链接。 https://gist.github.com/Satellite9/5e4ce3de5c19cee2f355d872b6d7d3c8 https://gist.github.com/Satellite9/5e4ce3de5c19cee2f355d872b6d7d3c8

This is the error that my browser sends me. 这是我的浏览器发送给我的错误。

*Error: Not Found at C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\app.js:60:13 at Layer.handle [as handle_request] (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\layer.js:95:5) at trim_prefix (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:317:13) at C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:284:7 at Function.process_params (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:335:12) at next (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:275:10) at C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:635:15 at next (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:260:14) at Function.handle (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:174:3) at router (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node *错误:在Layer.handle处C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ app.js:60:13找不到[作为handle_request](C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\在trim_prefix(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:317:13)中的router \\ layer.js:95:5)在C:\\ Users \\ Leimamo \\ PhpstormProjects \\ Untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:284:7在Function.process_params(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:335:12)下一个(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:275:10)在C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index下一步.js:635:15(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:260:14)在Function.handle(C:\\ Users \\ Leimamo \\ PhpstormProjects \\路由器(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node)上的untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:174:3) _modules\\express\\lib\\router\\index.js:47:12) at Layer.handle [as handle_request] (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\layer.js:95:5) at trim_prefix (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:317:13) at C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:284:7 at Function.process_params (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:335:12) at next (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:275:10) at C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\app.js:51:5 at Layer.handle [as handle_request] (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\layer.js:95:5) at trim_prefix (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:317:13) at C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:284:7 at Function. _modules \\ express \\ lib \\ router \\ index.js:47:12)[作为handle_request](C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ layer.js:95: 5)在trim_prefix(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:317:13)在C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\在Function.process_params(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:335:12)下的router \\ index.js:284:7(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:275:10)在C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ app.js:51:5在Layer.handle [作为handle_request](C :\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ layer.js:95:5)在trim_prefix(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index。 js:317:13),位于Function处的C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:284:7。 process_params (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:335:12) at next (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:275:10) at serveStatic (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\serve-static\\index.js:75:16) at Layer.handle [as handle_request] (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\layer.js:95:5) at trim_prefix (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:317:13) at C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:284:7 at Function.process_params (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:335:12) at next (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\express\\lib\\router\\index.js:275:10) at SessionStrategy.strategy.pass (C:\\Users\\Leimamo\\PhpstormProjects\\untitled2\\node_modules\\passport\\lib\\middleware\\authenticate.js:32 下一步(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router的process_params(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:335:12)在Layer.handle处的serveStatic(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ serve-static \\ index.js:75:16)中的\\ index.js:275:10)[以handle_request](C:\\ Users \\\\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ layer.js:95:5)位于trim_prefix(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:317 :13)在C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:284:7在Function.process_params(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\在SessionStrategy.strategy.pass(C:\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ express \\ lib \\ router \\ index.js:275:10)下的lib \\ router \\ index.js:335:12) :\\ Users \\ Leimamo \\ PhpstormProjects \\ untitled2 \\ node_modules \\ passport \\ lib \\ middleware \\ authenticate.js:32 5:9) * 5:9)*

this is the error that npm gives me Post /checkout 404 206.855 ms -5424 这是npm给我的错误Post / checkout 404 206.855 ms -5424

Thank you for any insight you may have. 感谢您的任何见解。

Killeon 基连

you are using wrong verb on index.js. 您在index.js上使用了错误的动词。 change get->post. 更改get-> post。

router.get('/checkout', function(req, res, next) {
......
});

to

router.post('/checkout', function(req, res, next) {
....
});

Edit with my demo, man. 伙计,用我的演示进行编辑。

router.get('/checkout', function(req, res, next) {
 //do something
    });

router.post('/checkout', function(req, res, next) {
// do something: get params with req.body
    });

I worked with the route and added to my view and finally the hbs form 我使用该路线,并添加到视图和hbs表单中

hbs form: I use route with post when submit form hbs表单:提交表单时,我在发布时使用路由

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

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