我是 Node 的新手,在使用 POST 功能时遇到了问题。 我有一个简单的网站,其中有以下几行:
app.get('/sign',(req,res)=>{
res.sendFile(path.join(__dirname, 'static', 'index.html'));
});
app.post('/sign', (req,res)=>{
res.send("Success!")
});
get 请求工作正常,但是当我在表单中发回数据时,我得到的不是成功消息,而是 Cannot POST /
。
当使用 app.get('/', etc.)
从“/”目录执行相同操作时
它工作正常。
这是'index.html'文件的内容:
<form action = '/' method='POST' id="form">
<div class="form-group">
<label for="emal">Email address</label>
<input type="email" class="form-control" name="email">
</div>
<div class="form-group">
<label for="pwd">Password</label>
<input type="password" class="form-control" name="password">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
答案 0 :(得分:3)
action
属性指定表单数据将被发布到的 URL。
您说过要将其发布到 /
。
您的服务器端代码为 /sign
提供路由,但不为 /
提供路由。
您需要匹配您的网址。要么将 action="/"
更改为 action="/sign"
以明确您将其发布到的位置,或者完全删除 action
属性,以便它发布到当前网址(它是 /sign
,因为这是提供包含表单的 HTML 文档的 GET 处理程序的路由)。