我正在使用Node,Express,Handlebars和MongoDB构建购物车项目。目前,当我尝试使用Jquery提交表单时,我收到的错误是我的' / checkout'文件。最初,我使用 return false 来阻止表单在接收数据之前提交。为了解决这个问题,我尝试使用 event.preventDefault 。在另一个论坛上,有人建议我的 crsf 保护不能正确创建令牌。我使用该路线并添加到我的视图中,最后添加到 hbs 表单中。这些尝试似乎都没有解决我的问题。
这是我的要点的链接。 https://gist.github.com/Satellite9/5e4ce3de5c19cee2f355d872b6d7d3c8
这是我的浏览器发送给我的错误。
*错误:找不到C:\ Users \ Leimamo \ PhpstormProjects \ untitled2 \ app.js:60:13 at Layer.handle [as handle_request] (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ layer.js:95:5) 在trim_prefix (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:317:13) 在 C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:284:7 在Function.process_params (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:335:12) 在下一个 (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:275:10) 在 C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表现\ LIB \路由器\ index.js:635:15 在下一个 (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:260:14) 在Function.handle (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:174:3) 在路由器 (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:47:12) 在Layer.handle [as handle_request] (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ layer.js:95:5) 在trim_prefix (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:317:13) 在 C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:284:7 在Function.process_params (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:335:12) 在下一个 (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:275:10) 在C:\ Users \ Leimamo \ PhpstormProjects \ untitled2 \ app.js:51:5 at Layer.handle [as handle_request] (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ layer.js:95:5) 在trim_prefix (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:317:13) 在 C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:284:7 在Function.process_params (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:335:12) 在下一个 (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:275:10) 在serveStatic (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \服务静电\ index.js:75:16) 在Layer.handle [as handle_request] (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ layer.js:95:5) 在trim_prefix (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:317:13) 在 C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:284:7 在Function.process_params (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:335:12) 在下一个 (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \表达\ lib中\路由器\ index.js:275:10) 在SessionStrategy.strategy.pass (C:\ Users \用户Leimamo \ PhpstormProjects \未命名\ node_modules \护照\ lib中\中间件\ authenticate.js:325:9) *
这是 npm 给我的错误 发布/结账404 206.855 ms -5424
感谢您提供的任何见解。
Killeon
答案 0 :(得分:1)
你在index.js上使用了错误的动词。改变get-> post。
router.get('/checkout', function(req, res, next) {
......
});
到
router.post('/checkout', function(req, res, next) {
....
});
答案 1 :(得分:0)
使用我的演示编辑,伙计。
router.get('/checkout', function(req, res, next) {
//do something
});
router.post('/checkout', function(req, res, next) {
// do something: get params with req.body
});
我使用该路线并添加到我的视图中,最后添加了hbs表单
hbs表格我在提交表格时使用路线