js node.js中的窗口未定义错误
Posted
技术标签:
【中文标题】js node.js中的窗口未定义错误【英文标题】:window is not defined error in js node.js 【发布时间】:2021-08-23 02:07:24 【问题描述】:我有这个简单的代码:
do
var SioNo = window.prompt("Nicholas ha il cancro, si o no?");
while (SioNo.toLowerCase() != "si" && SioNo.toLowerCase() != "no");
if (SioNo.toLowerCase() == "si")
console.log("Hai il cancro lol");
else
console.log("ahahahah si come no");
这是我第一次用 js 编码,所以我真的不知道该怎么做,我正在使用 node.js 最新版本和 VSCode
这是错误:
ReferenceError: 未定义窗口
在对象。
在 Module._compile (internal/modules/cjs/loader.js:1068:30)
在 Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
在 Module.load (internal/modules/cjs/loader.js:933:32)
在 Function.Module._load (internal/modules/cjs/loader.js:774:14)
在 Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
在内部/main/run_main_module.js:17:47
【问题讨论】:
【参考方案1】:window
只能在浏览器(Chrome、Firefox、Safari 等)中找到。
在没有额外包的情况下使用node
执行上述脚本将不起作用,因为window
变量根本不存在于当前上下文(即您的终端窗口)中。
如果你想在 NodeJS 中做一个提示,它将接受来自终端的用户输入,你可以使用原生包 readline
。
这是一个使用递归而不是 do...while
循环的解决方案。
const readline = require("readline");
const rl = readline.createInterface(
input: process.stdin,
output: process.stdout,
);
function askQuestion()
rl.question("Nicholas ha il cancro, si o no?", function (result)
if (result.toLowerCase() === "si")
console.log("Hai il cancro lol");
process.exit(1);
else
console.log("ahahahah si come no");
askQuestion();
);
askQuestion();
由于这是您第一次使用 javascript / NodeJS,我建议您先阅读教程并阅读文档。 https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps.
【讨论】:
【参考方案2】:其实我是 Node js 的新手,但我已经在寻找原因。我发现 Node.js 中无法识别“window”,因此通过导入此库“react”尝试此解决方案,然后使用变量“window”并查看它是否被识别:
从“反应”导入反应;
阅读本文了解更多详情: https://morioh.com/p/f7b08fe33a67
【讨论】:
以上是关于js node.js中的窗口未定义错误的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 Bootstrap node.js 应用程序中的错误“无法设置未定义的属性 'emulateTransitionEnd'”?