繁体   English   中英

Express.js发布时出错

[英]Error on post Express.js

我的联系表有问题。 我只是想用express发表一个简单的帖子。

我有以下代码:

views / contacto.jade

  extends layout-inside
  block content
  .main-container
  form(action='contacto', name='contacto', id='contacto', method='post')
  section.cover.fullscreen.image-bg.overlay
  .background-image-holder
  img.background-image(alt='image', src='/images/bg-6.jpg')
  |                 
  .container.v-align-transform
  .row
  .col-sm-6.col-sm-offset-3
  .feature.bordered.text-center
  h4.uppercase Contacto
  |                                 
  form.text-left
  input(type='text', name='name', placeholder='Nombre')
  |                                     
  input(type='text', name='email', placeholder='Email')
  |                                     
  input(type='text', name="telefono", placeholder='Teléfono')
  |                                     
  textarea(name="mensaje",  placeholder='mensaje')
  |                                     
  input(type='submit', value='Enviar')
  |  

路线/index.js

  router.get('/contacto', function(req, res, next) {
  res.render('contacto', { title: 'Contacto'});
  });

当我以表格的形式发帖时,出现此错误:

  Error: Not Found
  at /Users/dev/node/website/app.js:33:13
  at Layer.handle [as handle_request] (/Users/dev/node/website/node_modules/express/lib/router/layer.js:95:5)
  at trim_prefix (/Users/dev/node/website/node_modules/express/lib/router/index.js:312:13)
  at /Users/dev/node/website/node_modules/express/lib/router/index.js:280:7
  at Function.process_params (/Users/dev/node/website/node_modules/express/lib/router/index.js:330:12)
  at next (/Users/dev/node/website/node_modules/express/lib/router/index.js:271:10)
  at /Users/dev/node/website/node_modules/express/lib/router/index.js:618:15
  at next (/Users/dev/node/website/node_modules/express/lib/router/index.js:256:14)
  at Function.handle (/Users/dev/node/website/node_modules/express/lib/router/index.js:176:3)
  at router (/Users/dev/node/website/node_modules/express/lib/router/index.js:46:12)

您知道为什么会这样吗? 似乎文件不存在。

谢谢

它们是不同的HTTP动词, GETPOST ,当执行GET /contactos您可以渲染视图,这没关系。 单击提交时,您将尝试执行POST request

您可以添加类似以下内容来处理通过POST提交的表单:

 router.post('/contacto', function(req, res, next) {
  var formData = request.body;
  // Do stuff
  return response.end(201);
 });

对于您的API,您应该在路由之前加上/ api,例如: /api/contacts 另外,您应该全部用英语编写代码。

编辑。 Express 4配置

您应该使用Router对象按照一篇文章中的说明设置路由。

暂无
暂无

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

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