Javascript 在NodeJS中找不到另一个.js文件中定义的函数

Javascript 在NodeJS中找不到另一个.js文件中定义的函数,javascript,node.js,Javascript,Node.js,我对Javascript和NodeJS非常陌生 以下是我的网站的代码结构: |source | | stylesheets | | | index.styl | | templates | | default.jade | | homepage.jade |static | | [.css generated] | |server.js |package.json |file.js 下面是server.js: 我的第二个.js文件包含一个简单的

我对Javascript和NodeJS非常陌生

以下是我的网站的代码结构:

|source
|   | stylesheets
|   |    | index.styl
|   | templates
|        | default.jade
|        | homepage.jade
|static
|   | [.css generated]
|
|server.js
|package.json
|file.js
下面是server.js:

我的第二个.js文件包含一个简单的函数,当我的用户单击Jade中定义的我的主页中的按钮时,应该可以访问该函数,如下所示:

block content
    button(onclick='downloadFile()') Click me

但是,尽管函数是在file.js中定义的,但它似乎没有在当前范围中定义。为了考虑其他.js文件,我必须添加什么?

您需要使用元素加载脚本。使用src属性指定JavaScript文件的URL。您需要为文件提供一个URL,这可能最简单的方法是将其移动到静态/目录中,与CSS一起

<script src="/file.js"></script>
请注意,在服务器上运行的程序和在浏览器中运行的程序是两个不同的程序,即使它们是用相同的编程语言编写的。如果file.js包含预期在服务器上而不是在浏览器中运行的js,则需要采取另一种方法。解决在服务器和客户端之间传递值的问题


还要注意的是,onclick和其他内在事件属性具有,通常被认为小于,并且通常应该被替换为。

但是似乎该函数未在当前范围中定义-您根本没有显示它是被定义的。它是在我的项目结构中的file.js中定义的。非常感谢,我确实理解客户端JS和服务器端JS之间的区别。但我相信我的问题与在我的项目中包含另一个JS文件有关。如果我在file.js中有一个带有简单警报的函数,并且如果我在server.js中调用了上述函数,则该函数没有定义。当我在需要它的html页面中包含file.js时,找不到该文件。由于警报是一个特定于浏览器的功能,因此它在服务器上当然是未定义的。如果你得到一个404 not found,那么你需要按照我在回答的第一段中所说的做,并给它一个URL。当然,我确实在homepage.jade:scriptsrc=file.js中包含了类似这样的js文件,这与您所建议的是等效的。这不是正确的方法吗?@Christopher-您已经告诉浏览器要使用什么URL,但您还没有配置服务器以使该URL正常工作。我再次请你参阅本答复的第一段。特别是它的第三句。
<script src="/file.js"></script>