我在查找有关NodeJS的特定信息时遇到了一些麻烦,我在Google上进行了搜索,但实际上找不到任何答案。希望你能解决我的一些问题。
因此,我在Ubuntu中遵循this guide安装了NodeJS。然后,我通过遵循this guide使用npm来安装Sass。我能够使Sass正常工作。
但这是混乱的开始。我不完全确定如何实际使用Node。我是否应该总是使用此方法来启动服务器?
node myjsfile.js
如果我不这样做,则在HTML文件中添加一个脚本标签,
<script src="js/myjsfile.js"></script>
然后,当我加载页面时,控制台将输出类似
的错误Uncaught ReferenceError: require is not defined
但是,如果我运行
node myjsfile.js
按照this guide设置文件后,我对JS或HTML所做的任何更改实际上都不会出现在我的页面上,这意味着我必须不断地重新运行node
命令才能看到任何更新。
我确定我在这里遗漏了一些东西,但我不知道是什么。非常感谢您的帮助。
答案 0 :(得分:0)
Require不是JavaScript的一部分。 What is this Javascript "require"?
您必须使用grunt,webpack等工具转换文件。
Node的解释能力超过浏览器。这就是节点不引发错误的原因。也用于服务器端。如果要在浏览器中执行脚本,则不需要节点。
答案 1 :(得分:0)
节点用于服务器端代码(创建http服务器,执行一些脚本,创建RestAPI)。
假设您已经创建了mynodejsfile.js。 当您想要安装将在此文件中使用的节点程序包时。您到达mynodejsfile.js文件夹,并且:
npm install mypackage
这会将依赖项“ mypackage”安装在“ mynodejsfile.js”旁边的node_modules文件夹中。
然后您就可以
require('mypackage')
在“ mynodejsfile.js”中。
如果要创建HTML内容,则节点将直接在浏览器中使用节点文件,该节点文件将与nodejs解释器一起使用。
当您将html文件与脚本一起使用时,会使用客户端代码,您的浏览器将无法理解该代码。 在编写客户端代码(用于浏览器)时,您将使用浏览器ECMA 5/6代码,而不是nodejs代码。
您可以转换您的节点文件以使其在浏览器中可用,但它是高级/受限使用,因此您应该先了解客户端/服务器代码之间的区别,然后再进行此操作。
答案 2 :(得分:0)
以我的感觉,您正在混淆客户端javascript功能的行为(例如将脚本文件包含到网页中)并构建NodeJS服务器。正如Matthi所指出的,Node可以比浏览器更多地解释方式。
关于不断刷新服务器实例的必要性,我几乎不能向您推荐nodemon。默认情况下,nodemon在每次代码更改后都会重新启动服务器,从而消除了在开发阶段手动重新启动服务器的问题。