我的联系表格有问题。我只是想用快递做一个简单的帖子。
我有以下代码:
视图/ 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)
你知道为什么会这样吗?看来该文件不存在。
由于
答案 0 :(得分:0)
他们是不同的HTTP动词,GET
与POST
不同,在执行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
。此外,您应该用英语编写所有代码。
您应该使用Router
对象设置路线,如this other post中所述。