gpt4 book ai didi

javascript - 如何使用ejs修复 Node 中的 "document is not defined"

转载 作者:行者123 更新时间:2023-12-02 23:42:39 26 4
gpt4 key购买 nike

我刚刚开始学习 javascript 和 nodejs(express 和 ejs)来开发我的作品集。当我运行下面的 javascript 时,我遇到错误“文档未定义”。有人可以帮我吗?
终端报告此错误。

ReferenceError: document is not defined at Object. (C:\Users\milkc\WebDevelopment\Practice\sassPortfolio\index.js:21:17) at Module._compile (internal/modules/cjs/loader.js:701:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10) at Module.load (internal/modules/cjs/loader.js:600:32) at tryModuleLoad (internal/modules/cjs/loader.js:539:12) at Function.Module._load (internal/modules/cjs/loader.js:531:3) at Function.Module.runMain (internal/modules/cjs/loader.js:754:12) at startup (internal/bootstrap/node.js:283:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

const express = require('express');
const app = express();
const port = 3000;

app.set('view engine', 'ejs');

app.use(express.static('public'));

app.get('/', (req, res) => {
res.render('index');
})

app.listen(port, () => {
console.log('App listening on port' + port);

})



//Select Dom Item
const menuBtn = document.querySelector('.btn-menu');
const menu = document.querySelector('.menu');
const menuNav = document.querySelector('.menu-nav');
const menuBranding = document.querySelector('.menu-branding');
const navItems = document.querySelectorAll('.nav-item');

// Set Initial state of menu
let showMenu = false;

menuBtn.addEventListener('click', toggleMenu);

function toggleMenu() {
if (!showMenu) {
menuBtn.classList.add('close');
menu.classList.add('show');
menuNav.classList.add('show');
menuBranding.classList.add('show');
navItems.forEach(item => item.classList.add('sjow'));


} else {
// Set Menu State
showMenu = true;

menuBtn.classList.remove('close');
menu.classList.remove('show');
menuNav.classList.remove('show');
menuBranding.classList.remove('show');
navItems.forEach(item => item.classList.remove('sjow'));


}
}
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">

<!-- FontAwesome -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">

<!-- GoogleFont -->
<link href="https://fonts.googleapis.com/css?family=Poppins" rel="stylesheet">

<!-- CSS -->
<link rel="stylesheet" href="css/main.css">

<title>Shintaro Kai</title>
</head>

<body id='bg-img'>
<header>
<div class="menu-btn">
<div class="btn-line"></div>
<div class="btn-line"></div>
<div class="btn-line"></div>
</div>

<nav class="menu">
<div class="menu-branding">
<div class="portrait"></div>
<ul class="menu-nav">
<li class="nav-item">
<a href="" class="nav-link">
Home
</a>
</li>
<li class="nav-item">
<a href="/about.html" class="nav-link">
About Me
</a>
</li>
<li class="nav-item">
<a href="/work.html" class="nav-link">
My Work
</a>
</li>
<li class="nav-item">
<a href="/contact.html" class="nav-link">
How to reach me
</a>
</li>
</ul>
</div>
</nav>
</header>

<main id="home">
<h1 class="lg-heading">
Shintaro <span class="text-secondary"> Kai </span>
</h1>
<h2 class="sm-heading">
Web Developer, Game Designer and Video Contents Creator
</h2>
<div class="icons">
<a href="#!">
<i class="fab fa-linkedin fa-2x"></i>
</a>
<a href="#!">
<i class="fab fa-facebook fa-2x"></i>
</a>
<a href="#!">
<i class="fab fa-github fa-2x"></i>
</a>
</div>
</main>
<script src='js/main.js'></script>
<script type="text/javascript" src="js/quiz.js"></script>
</body>

</html>

最佳答案

文档仅存在于浏览器中,因此下面的代码显示在由html导入的js文件中

//code.js
//Select Dom Item
const menuBtn = document.querySelector('.btn-menu');
const menu = document.querySelector('.menu');
const menuNav = document.querySelector('.menu-nav');
const menuBranding = document.querySelector('.menu-branding');
const navItems = document.querySelectorAll('.nav-item');

// Set Initial state of menu
let showMenu = false;

menuBtn.addEventListener('click', toggleMenu);

function toggleMenu() {
if (!showMenu) {
menuBtn.classList.add('close');
menu.classList.add('show');
menuNav.classList.add('show');
menuBranding.classList.add('show');
navItems.forEach(item => item.classList.add('sjow'));


} else {
// Set Menu State
showMenu = true;

menuBtn.classList.remove('close');
menu.classList.remove('show');
menuNav.classList.remove('show');
menuBranding.classList.remove('show');
navItems.forEach(item => item.classList.remove('sjow'));


}
}
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">

<!-- FontAwesome -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">

<!-- GoogleFont -->
<link href="https://fonts.googleapis.com/css?family=Poppins" rel="stylesheet">

<!-- CSS -->
<link rel="stylesheet" href="css/main.css">

<title>Shintaro Kai</title>
</head>

<body id='bg-img'>
<header>
<div class="menu-btn">
<div class="btn-line"></div>
<div class="btn-line"></div>
<div class="btn-line"></div>
</div>

<nav class="menu">
<div class="menu-branding">
<div class="portrait"></div>
<ul class="menu-nav">
<li class="nav-item">
<a href="" class="nav-link">
Home
</a>
</li>
<li class="nav-item">
<a href="/about.html" class="nav-link">
About Me
</a>
</li>
<li class="nav-item">
<a href="/work.html" class="nav-link">
My Work
</a>
</li>
<li class="nav-item">
<a href="/contact.html" class="nav-link">
How to reach me
</a>
</li>
</ul>
</div>
</nav>
</header>

<main id="home">
<h1 class="lg-heading">
Shintaro <span class="text-secondary"> Kai </span>
</h1>
<h2 class="sm-heading">
Web Developer, Game Designer and Video Contents Creator
</h2>
<div class="icons">
<a href="#!">
<i class="fab fa-linkedin fa-2x"></i>
</a>
<a href="#!">
<i class="fab fa-facebook fa-2x"></i>
</a>
<a href="#!">
<i class="fab fa-github fa-2x"></i>
</a>
</div>
</main>
<script src='js/code.js'></script>
<script type="text/javascript" src="js/quiz.js"></script>
</body>

</html>

假设您的主要代码是index.js

const express = require('express');
const app = express();
const port = 3000;

app.set('view engine', 'ejs');

app.use(express.static('public'));

app.get('/', (req, res) => {
res.render('index');
})

app.listen(port, () => {
console.log('App listening on port' + port);

})

你应该这样启动你的服务器:

node index.js
<小时/>

很高兴知道您已通过 GitHub 分享了您的代码。

我刚刚克隆了您的存储库,这是我的问题:

我看到这段代码

const menuBtn = document.querySelector('.btn-menu');

由于我拥有您的所有代码,因此我进行了搜索,但未能找到匹配项。

所以我的问题是这个btn-menu在哪里?

您能否与我们分享更多背景信息,谢谢

关于javascript - 如何使用ejs修复 Node 中的 "document is not defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55998317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com