這個問題在這里已經有了答案: 瀏覽器內javascript需要節點樣式嗎?[關閉] (7 個回答) 19 小時前關閉。
所以我現在的目標是使用 NodeJS 和 express 來獲取我從表單中獲取的資料并將其寫入本地檔案。本地檔案位于我的計算機上,即服務器(因為我使用的是本地主機)。現在,我可以呈現表單,但是如何向該表單添加功能?因為每當我在 views 檔案夾中創建 index.js 檔案時,html 都無法訪問它,直到我不將它移動到公共檔案夾,即靜態檔案夾,html 無法訪問 js 檔案. 現在,當我將它傳輸到 statics 檔案夾時,require 突然停止作業。
服務器.js:
const path = require('path')
const app = express()
app.use(express.static(path.join(__dirname, 'public')));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.get("/", (req, res) => {
console.log("here")
res.render("index")
})
app.listen(3000)
uj5u.com熱心網友回復:
我認為您在客戶端和服務器之間混合。
客戶端 JS 用于向您的前端添加功能,例如,在單擊按鈕時執行某些操作。為此,您有幾個選擇:
- 嵌入代碼 - 這將直接寫入
<script>標簽內的 HTML :
<script>
document.getElementById("id").innerHTML = "This is my Id";
</script>
- 行內代碼 - 也將寫入您的 HTML 但不使用
<script>標記:
<body id="test">
<button><a href="#" onClick="alert('Clicked!');">Click Me</a></button>
</body>
- 外部檔案 -
.JS您將使用以下檔案鏈接到 HTML的檔案:
<script src="index.js"></script>
最佳做法是將您的<script>標簽放在 HTML<body>標簽的最后。
現在,如果您希望服務器從客戶端接收資料并執行一些操作,您將需要創建一個快速服務器,該服務器將公開一個端點來執行此操作。
所以你的 HTML 看起來像這樣:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<form action="http://localhost:3000/test" method="POST">
First name: <input type="text" name="firstname" /><br />
Last name: <input type="text" name="lastname" /><br />
<button type="submit">Submit</button>
</form>
</body>
</html>
您的 express JS 檔案將如下所示:
const express = require("express");
const app = express();
app.use(express.urlencoded({ extended: true }));
app.post("/test", (req, res) => {
console.log(req.body);
res.status(200).send(`Info submitted, Full Name: ${req.body.firstname} Last Name: ${req.body.lastname}`);
});
app.listen(3000, () => {
console.log("Server started on port 3000");
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/359504.html
標籤:javascript 节点.js 表达
