首页 > 解决方案 > 文档未在 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);

标签: javascriptjqueryhtmlnode.jsjsdom

解决方案


因此,您标记为selection.js需要在您的网页中的代码,直接嵌入或从<script>标签链接,以便它可以在浏览器的网页中运行。

然后,该代码可以使用fetch()浏览器中的 XMLHttpRequest 或接口对服务器上的路由进行 Ajax 调用,并传递所需的值。

您服务器上的该路由(您需要为其定义和添加代码)然后可以检查该值并决定要返回 Ajax 调用的数据。

您在网页中的 Javascript,然后从 Ajax 调用接收返回的数据并决定如何处理它,例如在页面中插入新内容供用户查看,使浏览器加载不同的页面或刷新当前页面或其他任何合适的东西。


推荐阅读