使用node.js开始时出现错误:“Uncaught ReferenceError: module is not defined”和“Uncaught ReferenceError: require is not defined”。

3

我刚开始学习Node.js,并尝试使用模块。我已经安装了node和npm,并确保一切都正常。我将放下面的代码以显示我得到了什么。

我有两个js文件,这是它们。

app.js:

var movies = require('./movies');
movies.avatar();

movies.js:

function printAvatar(){
  console.log("avatar pg-13");
}

function printChappie(){
  console.log("chappie pg-13");
}

module.exports.avatar = printAvatar;

这是我正在运行的HTML页面,以便我可以查看控制台:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script src="movies.js" type="text/javascript"></script>
    <script src="app.js" type="text/javascript"></script>
    <title></title>
  </head>
  <body>

  </body>
</html>

基本上当我运行这个程序时,我应该在控制台上打印出 "avatar pg-13"。然而,这并没有发生。以下是我在控制台中收到的两个错误。

错误1:未捕获的引用错误:模块未定义 movie.js:9

错误2:未捕获的引用错误:要求未定义 app.js:1


1
你正在浏览器中运行Node.js代码,我认为你可以使用browserify使其在浏览器中工作。 - jcubic
2个回答

2

如果不使用nw.js或类似的工具,你不能直接在HTML中运行Node代码。请打开命令提示符,导航到代码所在文件夹,并输入 node app.js

你可以尝试使用browserify将其转换为可在浏览器中运行的格式,但并非所有的Node代码都可以通过browserify转换。


另外,我正在使用Atom,并且有一个包可以让我在Atom中拥有控制台。但是我遇到了这个错误:在Atom中运行错误:错误:找不到模块'./movies'(...) - NewbieCoder
你输入了 apps.js,带有一个 s。 - Dr. McKay
有点尴尬哈哈,非常感谢。你知道有没有一个免费的文本编辑器适用于Node.js吗? - NewbieCoder
如果有帮助的话,我会感激您接受这个答案。Notepad++是一个很好的选择作为基本文本编辑器。如果你是学生,你可以免费获得WebStorm,它具有出色的Node支持。 - Dr. McKay
抱歉让您等待了一段时间才回答,我知道 Notepad++,但是我不想每次都要去单独的终端输入节点 某些内容,感谢您的帮助! - NewbieCoder
显示剩余4条评论

-1

你可以在浏览器中使用require,尝试使用Browserify,或者在终端上使用node命令运行你的代码。


当我在终端中运行:node app.js时,我得到了错误:找不到模块'c:\Users\Amazo\Node.js\Taylor\apps.js' 在Function.Module._resolveFilename (module.js:337:15) 在Function.Module._load (module.js:287:25) 在Function.Module.runMain (module.js:467:10) 在startup (node.js:136:18) 在node.js:963:3 - NewbieCoder
另外,我正在使用Atom,并且有一个包可以让我在Atom中拥有控制台。但是我遇到了这个错误:在Atom中运行错误:错误:找不到模块'./movies'(...) - NewbieCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接