[英]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/scripts
或root
,甚至也放在/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.