Javascript 如何调整此浏览器代码以在Node.js应用程序上运行?

Javascript 如何调整此浏览器代码以在Node.js应用程序上运行?,javascript,node.js,dependencies,Javascript,Node.js,Dependencies,现在我不明白这段代码到底在做什么。我从中获得了此代码,并将其放入我的srcServer.js。我已经通过从“文档”导入文档的行包含了文档库,但我收到以下错误: var templateSource = document.getElementById('result-template').innerHTML, template = Handlebars.compile(templateSource), resultsPlaceholder = document.getElementById

现在我不明白这段代码到底在做什么。我从中获得了此代码,并将其放入我的
srcServer.js
。我已经通过从“文档”导入文档的行
包含了
文档
,但我收到以下错误:

var templateSource = document.getElementById('result-template').innerHTML,
  template = Handlebars.compile(templateSource),
  resultsPlaceholder = document.getElementById('result'),
  loginButton = document.getElementById('btn-login');
我还将文档包含在
package.json中的依赖项中:

var templateSource = document.getElementById('result-template').innerHTML
我是否应该从示例在线获取更多文件?我不确定这里的错误是什么。
JFiddle
示例中有一些文件:

我是否应该将它们包含在我的项目中,如果是,是否应该将它们包含在
src
文件夹中

"devDependencies": {
    "document": "0.4.7",
...
这里发生了几件事。一个是一些简短的变量声明,所以让我们将其更改为更清晰:

var templateSource = document.getElementById('result-template').innerHTML,
template = Handlebars.compile(templateSource),
resultsPlaceholder = document.getElementById('result'),
loginButton = document.getElementById('btn-login');
以下是我在不了解车把的情况下看到的情况,除了它是一个模板引擎:

var templateSource = document.getElementById('result-template').innerHTML;

var template = Handlebars.compile(templateSource);

var resultsPlaceholder = document.getElementById('result');

var loginButton = document.getElementById('btn-login');
//在页面上查找id为=“结果模板”的元素
//寻找类似于
//.innerHTML从该元素获取内容并保留其中的HTML部分
//还有.innerText,它将去掉HTML
var templateSource=document.getElementById('result-template').innerHTML;
//通过编译函数从上面运行该内容
//这可能是用来帮助车把理解HTML的
//所以车把可以重新渲染它
var template=handlebar.compile(templateSource);
//这只是获取一个名为id=“result”(即:)的元素
//一旦您的代码有了这个元素,它就可以对它执行进一步的逻辑
//尝试在控制台中键入:document.getElementById('result')
//查看显示的内容
//这似乎与前两行代码没有关联
var resultspholder=document.getElementById('result');
//这也没有连接到其他三行代码。
//它还通过ID查找元素
//出于某种原因,显然是一个登录按钮
var loginButton=document.getElementById('btn-login');
希望这是有帮助的


您的问题似乎是
文档
没有定义,或者它不是文档。

@BhojendraNepal我自己也不明白。该代码是浏览器代码,需要DOM中的内容才能执行任何有用的操作。它从页面中获取一些文本,这些文本显然被格式化为Handlebar模板,然后编译该模板(将其转换为HTML),然后在页面中找到另外两个元素。它实际上与HTML没有任何关系。此代码完全设计为在浏览器中运行。为什么要在node.js中运行它?您想完成什么?@jfriend00我对这个问题做了一些修改,以反映我对这个问题的一些理解。您指定的文档依赖项是一个用于生成文档的node.js包。它与全局“document”变量没有任何关系。可能您正在导入的文档模块与导致此问题的全局变量之间存在冲突。@jfriend00正如您从
JFiddle
示例中看到的,我正在尝试访问Spotify API、登录和获取信息。
var templateSource = document.getElementById('result-template').innerHTML;

var template = Handlebars.compile(templateSource);

var resultsPlaceholder = document.getElementById('result');

var loginButton = document.getElementById('btn-login');
// find an element on your page that has id="result-template"
// look for something like <div id="result-template">
// .innerHTML takes the content from that element and preserves the HTML part of it
// there is also .innerText which would strip the HTML out
var templateSource = document.getElementById('result-template').innerHTML;

// run that content from above through a compile function
// this is probably used to help Handlebars understand the HTML
// and so Handlebars can re-render it
var template = Handlebars.compile(templateSource);

// this is simply getting an element called id="result" (ie: <div id="result">)
// once your code has this element, it can execute further logic on it
// try typing it into your console: document.getElementById('result')
// see what is displayed
// this also doesn't appear connected with the first two lines of code
var resultsPlaceholder = document.getElementById('result');

// this is also not connected to the other three lines of code.
// it is also finding an element by ID
// clearly a login button, for some reason
var loginButton = document.getElementById('btn-login');