Javascript 使用NodeJS更改HTML显示的文本
所以我创建了一个学习网站。我希望有人能够在“登录”页面上输入您的姓名,然后您将被发送到主页,在那里它将显示欢迎(在这里输入姓名)h1。我将包括我的代码和页面的图片。请帮忙 注意:我只是想操纵DOM。我可以用JQuery来实现吗 感谢您在高级课程中的帮助 我也将把代码放在文本中Javascript 使用NodeJS更改HTML显示的文本,javascript,html,jquery,node.js,express,Javascript,Html,Jquery,Node.js,Express,所以我创建了一个学习网站。我希望有人能够在“登录”页面上输入您的姓名,然后您将被发送到主页,在那里它将显示欢迎(在这里输入姓名)h1。我将包括我的代码和页面的图片。请帮忙 注意:我只是想操纵DOM。我可以用JQuery来实现吗 感谢您在高级课程中的帮助 我也将把代码放在文本中 app.js const express = require("express"); const bodyParser = require("body-parser"); const { JSDOM } =
app.js
const express = require("express");
const bodyParser = require("body-parser");
const { JSDOM } = require("jsdom");
const { window } = new JSDOM("");
const $ = require("jquery")(window);
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static("public"));
app.get("/", function (req, res) {
res.sendFile(__dirname + "/signin.html");
});
app.post("/", function (req, res) {
res.sendFile(__dirname + "/index.html");
const fname = req.body.fname;
console.log(fname);
});
app.listen(3000, function (req, res) {
console.log("Listening");
});
changeName = function (name) {
window.document.querySelector("h1").innerText = name;
};
HTML For Home PAGE----------------------------------------------------------------
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Aquascaper</title>
<!-- <link
rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"
/> -->
<link rel="stylesheet" href="css/index.css" />
</head>
<body>
<!-- Nav Bar -->
<div class="bg-img">
<div class="overlay">
<div class="container">
<img src="img/logo-long.svg" class="logo no-overlay" />
<nav class="nav_links">
<a href="">About</a>
<a href="">Contact</a>
<button class="calc-btn">
Calculator
</button>
</nav>
</div>
<div class="showcase-text">
<h1>Welcome,</h1>
</div>
</div>
</div>
<!-- Showcase -->
<script
src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
crossorigin="anonymous"
></script>
<script
src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin="anonymous"
></script>
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
crossorigin="anonymous"
></script>
<script
src="https://code.jquery.com/jquery-3.5.1.js"
integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc="
crossorigin="anonymous"
></script>
</body>
</html>
HTML FOR SIGN IN PAGE ---------------------------------------------------------------------
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>SignIn</title>
<link
rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"
integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk"
crossorigin="anonymous"
/>
<link rel="stylesheet" href="css/signin.css" />
</head>
<body>
<div class="overlay">
<form class="form-signin" method="POST">
<img
class="mb-4 logo"
src="img/logo.svg"
alt=""
width="150"
height="150"
/>
<h1 class="">Enter Name to Enter Site</h1>
<input
name="fname"
type="text"
id="inputName"
class="form-control"
placeholder="First Name"
required
autofocus
/>
<button class="btn btn-primary btn-lg" type="submit">
Sign in
</button>
</form>
</div>
</body>
</html>
app.js
const express=要求(“express”);
const bodyParser=require(“body parser”);
const{JSDOM}=require(“JSDOM”);
const{window}=newJSDOM(“”);
const$=require(“jquery”)(窗口);
常量app=express();
use(bodyParser.urlencoded({extended:true}));
应用程序使用(快速静态(“公共”);
应用程序获取(“/”,函数(请求,恢复){
res.sendFile(uu dirname+“/sign.html”);
});
应用程序post(“/”,功能(请求,回复){
res.sendFile(uu dirname+“/index.html”);
const fname=req.body.fname;
console.log(fname);
});
应用程序监听(3000,功能(请求,恢复){
console.log(“监听”);
});
changeName=函数(名称){
window.document.querySelector(“h1”).innerText=名称;
};
主页的HTML----------------------------------------------------------------
水景
计算器
欢迎
用于登录页面的HTML---------------------------------------------------------------------
签名
输入名称以进入站点
登录
您无法从服务器端操作客户端DOM。但是你可以使用
然后在服务器端页面上使用
app.get('/homepage',函数(req,res){
res.render('homepage.ejs',{username:name});
});代码>
在您的主页上。ejs使用
<h1>Welcome, <%= username %></p>
欢迎您
嘿,我知道一开始听起来可能不太好,但您应该在模板引擎中实现它,比如Handlebar、ejs,而不是原始html,最好的部分是它们看起来和html完全一样,希望如此helps@harshitkohli谢谢你的帮助。我是新来的,不知道把手。这就是为什么我建议你直接跳到它的完全相同的HTML在简单的话HTML与逻辑它会很容易解决这个问题后端渲染与嵌入数据的模板。
<h1>Welcome, <%= username %></p>