簡體   English   中英

如何在快遞中使用路線路徑?

[英]How to use route path in express?

我堅持弄清楚客戶端文件如何找到快速表達的路由功能。 我的應用程序結構就是這樣,

|-root
  |--public
     |---files
     |---scripts
     |---css
  |--views
  ...

客戶端html很受打擊,位於/public/files 可以正確地將其呈現到http://localhost:3000/files/like_animal.html

<html>
<body>
   <form action="/handleForm" method="post">
   name: <input name="usename"><br>
   I like <input name="animal"><br>
   <input type="submit" value="Go">
   </form>
</body>
</html>

js文件就是這樣,

var express = require('express');
var app = express();
var path = require('path');

app.use(express.static(path.join(__dirname + 'public')));
console.log('start');

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));

app.use('/handleForm', (req, res) => {
    var name = req.body.name;
    var animal = req.body.animal;
    console.log(name + " " + animal);
    res.send('Thank you');
});

app.listen(3000,  () => {
    console.log('Listening on port 3000');
});

現在我不確定應該將這個js文件放在哪里。我試圖將它放在/public/scriptsroot ,甚至也放在/public/files 但是沒有任何效果。 每次提交表單時,瀏覽器始終顯示Cannot POST /handleForm 作為一個為期一周的新手快遞,我完全迷失了。 任何提示將不勝感激。 非常感謝。

您應該將腳本放在root然后像這樣指定公眾的路徑。

app.use(express.static(path.join(__dirname, 'public')));

另一個注意事項, app.use用於制作中間件。 您應該使用app.post定義路線。

app.post('/handleForm', (req, res) => {
  // ...
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM