节点 - 如何运行 app.js?

98

我对 Node.js非常陌生,我尝试通过在终端输入命令node app.js来运行一个(其他开发者制作的)项目。但是我遇到了下面的错误,请问你知道如何运行此项目吗?

我按照这里的几个步骤来运行这个项目。

以下是错误日志:

Junryls-Mac-mini:app junrylmaraviles$ node app.js

/Users/junrylmaraviles/Desktop/myfolder/mysubfolder/app/app.js:1
(function (exports, require, module, __filename, __dirname) { define('src/app'
                                                              ^
ReferenceError: define is not defined
    at Object.<anonymous> (/Users/junrylmaraviles/Desktop/myfolder/mysubfolder/app/app.js:1:63)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

当我开始使用新技术时,我会从网站下载示例,阅读博客并访问社区 - Uwe Keim
1
@UweKeim 谢谢,这对我来说是一个很好的开始。虽然还在进行中,也许我可以在其中找到答案 :) - JunM
谷歌的第一个结果是这个SO帖子。浏览了一下,你需要添加一些样板代码,至少下次尝试一下谷歌... - Jake Sellers
你正在遵循其他页面指令的哪一部分?你使用的node版本是什么 node --version?其他人的代码下载链接是什么?在我看来,define()函数在5个次要版本之前的node 0.5.0中可用,而自那时以来API已经发生了变化。如果代码真的很旧,请尝试找到更新的示例或教程进行跟随。 - Adam
你应该根据所提供的信息自己回答问题,以备将来参考。 - Adam
显示剩余4条评论
11个回答

160

假设我已经在电脑上正确安装了nodenpm,那么我会:

  • 下载代码
  • 在终端中进入项目文件夹,在那里我将希望看到一个package.json文件
  • 运行npm install以安装所有项目依赖项
  • 运行npm install -g nodemon以安装所有项目依赖项
  • 最后使用npm startnode app.jsnodemon app.js启动应用程序并在本地主机上运行

使用nodemon app.js(nodemon是一种实用程序,可以监视您的源代码中的任何更改,并自动重新启动服务器)


@Prakash Tiwari 非常感谢,我正在Udemy学习编程课程,该课程使用C9,但我一直找不到如何在本地主机上运行项目的方法! - fedeteka
2
nodemon app.js 上加 1。 - Jayram Kumar
今天访问本地主机的8080端口不起作用了。/难过的表情 - Urasquirrel
1
该死,我竟然花了将近8年才接受这个答案。我当时问的问题真是太菜了 :) - JunM
还有一个技巧我想要补充,我们可以编写一个脚本来运行特定的命令,并打开浏览器(localhost)。例如,对于我的TypeScript Node应用程序,我已经在package.json文件中添加了以下脚本:"starto": "cd src && tsc && open http://localhost:3000 && node server.js",使用以下命令来运行它-> npm run starto - Wasit Shafi

21

下载的代码可能需要您先安装依赖项。在app.js目录下尝试以下命令: npm install 然后 node app.js。这将安装依赖项然后启动应用程序。


3
npm install 安装成功了一些内容,但当我运行 node app.js 时仍然遇到相同的错误。 - JunM

13

只是添加这个。 如果您的 "main": "index.js" 在 package.json 中已正确设置,只需使用 node .

{
  "name": "app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
     ...
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
     ...
  },
  "devDependencies": {
    ...
  }
}

11

要运行app.js文件,请检查您的package.json文件中的 "main": "app.js"

然后运行命令$ node app.js。这应该可以运行您的应用程序。


如果在命令中明确命名了,为什么 package.json 中需要“main”? - Annan Yearian

3
运行一个Node.js项目,您可以通过以下命令来运行该项目。
node app.js  

但是,如果您想使用npm start运行项目,则需要在package.json文件的脚本中传递"start":"Node app.js"
因此,您的package.json文件将如下所示:
"scripts": { "start": "node app.js", "test": "test" }

一旦您完成了更改,只需保存文件,然后进入终端,输入npm start命令,您会看到项目已启动,正在运行node app.js命令。
请参考下面的图片以进行澄清。

enter image description here

您还可以在下面的图像中看到,您的项目可以通过命令node app.jsnpm start来运行。

enter image description here


2
节点正在抱怨,因为您的代码尝试在其第一行调用未命名的函数definedefine来自AMD(异步模块定义),在标准node开发中不使用。
可能是您获取项目的开发人员在节点中使用了某种诡计来使用AMD。您应该询问该人运行代码所需的特殊步骤。

1
如果是关于 Node.js 项目的话:
           Normally we can run,
           >node app 

              (or) 

           Install nodemon dependency (npm i -g nodemon)
           >nodemon app.js

              (or)

           In Package.json, inside the scripts has "start":"nodemon app.js"
           >npm start

0

您有一个package.json文件,显示了项目的主要配置, 以及一个lockfile,其中包含项目配置的完整详细信息,例如在项目的根文件夹中使用的每个软件包或库的URL......

npm是Node.js的默认软件包管理器..... 您需要做的就是从终端调用$ npm install,位于您拥有package.json和lock文件的根目录中...因为您没有添加任何特定的软件包进行安装.....如果它不存在于项目环境中,它将通过锁定文件逐个下载所需的软件包,这些软件包的URL写在锁定文件中......

您确保编辑您的package.json文件....为您的应用程序提供入口点....."name":"app.js"其中app.js是主脚本..或index.js取决于项目命名约定...

然后您可以运行..$ Node app.js$ npm start如果您的package.json脚本具有start字段配置,如"scripts": { "start": "Node index.js", "test": "test" }.....这仍然间接地调用您的$ Node app.js


0
package.json 文件中添加脚本 "start":"node filename.js",然后在终端中运行 -> npm start

-2

Node 管理依赖关系,即使用 package.json 管理第三方代码,以便为项目的所有安装保持第三方模块名称和版本稳定。这也有助于使文件变得轻量级,因为代码仓库中只存在实际的程序代码。每当克隆存储库时,为了使其工作(因为代码中可能使用第三方模块),您需要安装所有依赖项。 在项目结构的根目录中,在 CMD 中使用 npm install 完成所有依赖项的安装。如果依赖项被正确安装,则应解决所有依赖项问题。


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