javascript - 文档未在 node.js 上定义 - 如何将变量从另一个 .js 文件导入 node.js 服务器?
问题描述
编辑:实际上,我的问题是“如何在 server.js 中使用 selection.js 中的“值”?”我想根据用户的选择将用户引导到搜索页面。
我是网络编程的新手。我有 server.js 和 selection.js。server.js 是一个节点文件,我的服务器就在其中。selection.js 是我的项目类更改器。我正在使用 selection.js 更改选定项目的类,并且我正在尝试使用 server.js 中的这个选定项目。当我尝试下面的代码时,我正在接受这个狗屎:文档未在 node.js 上定义
真的很痛苦。我试图解决它大约几个小时。但是,什么都没有!请帮助我 :/
选择.js:
var iconContainer = document.getElementById('iconContainer');
var icon = iconContainer.getElementsByClassName("item");
for (var i = 0; i < icon.length; i++) {
icon[i].addEventListener("click", function() {
var current = document.getElementsByClassName("active");
current[0].className = current[0].className.replace(" active", "");
this.className += " active";
const btnSearch = document.querySelector("#btnSearch");
btnSearch.addEventListener("click", () => {
// get the active item's value
const value = document.querySelector(".item.active span").innerText;
console.log("value: ", value);
// do fetch
});
});
}
module.exports={searchPath: "/"+value};
server.js:
var fs = require('fs');
var express = require('express');
var app = express();
var path = require('path');
app.use('/public', express.static(path.join(__dirname, 'public')));
// '/' girdisi için index.html getirilecek.
app.get('/', function (req, res) {
fs.readFile('index.html', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
});
//---------------------------------------------------
// Server kuruyoruz.
var server = app.listen(8081,"127.0.0.1", function () {
var host = server.address().address;
var port = server.address().port;
console.log('Server http://' + host + ':' + port+' adresinde çalışıyor...');
});
var search = require('./public/js/selection');
console.log(search.searchPath);
解决方案
因此,您标记为selection.js
需要在您的网页中的代码,直接嵌入或从<script>
标签链接,以便它可以在浏览器的网页中运行。
然后,该代码可以使用fetch()
浏览器中的 XMLHttpRequest 或接口对服务器上的路由进行 Ajax 调用,并传递所需的值。
您服务器上的该路由(您需要为其定义和添加代码)然后可以检查该值并决定要返回 Ajax 调用的数据。
您在网页中的 Javascript,然后从 Ajax 调用接收返回的数据并决定如何处理它,例如在页面中插入新内容供用户查看,使浏览器加载不同的页面或刷新当前页面或其他任何合适的东西。
推荐阅读
- android - 无法访问“androidx.navigation.NavArgsLazy”的超类型“kotlin.Lazy”
- 3d - 如何将我的 2D Aim Trainer(内置单游戏)转换为 3D 平台?
- swagger - 在 API Gateway 中聚合来自许多微服务的 OpenAPI 3 (v3/api-docs) 文件
- javascript - 根据传递的类型从函数中获取数据,不使用 if-else 或 switch
- reverse-proxy - CloudFront 反向代理云端
- python - 在 tkinter 和消息编码中出现错误
- python - 使用 cdk 、 sam 和 docker 进行本地测试时,与 aws mysql rds 实例的连接失败
- c# - 适用于 .Net Framework 4.7.1 的自定义 AWS SSM 配置生成器
- formio - Formio 更新editForm
- javascript - 反应漂亮的 dnd 第一列的两个不能正常工作 - 无法找到可拖动的 id