【问题标题】:AngularJS+ NodeJS AppAngularJS 节点 JS 应用
【发布时间】:2026-01-14 19:35:01
【问题描述】:

我自己制作了一个 AngularJS 应用程序和一个 NodeJS 应用程序,但我现在想做的是融合两者。通过将 nodeJS 应用程序放在 AngularJS 应用程序中或其他方式。

我知道最好让 NodeJS 应用程序为 AngularJS 应用程序使用的 API 提供服务,但我只想要一个服务器来处理整个事情,我认为这是可行的,因为当我创建一个 AngularJS 应用程序时,已经有一个名为“节点模块”。

我现在的项目结构是:

  • AngularApp 文件夹(其中有整个 AngularJS 应用程序)
  • node_modules(我在其中加载了 express、mysql 以及我在 Node.js App 中需要的内容)
  • 独立:NodeApp.js(包含node代码的NodeJS应用)

但是,当我运行app.js/index.html 时,它会抛出以下错误:“无法获取 index.html”,这意味着即使它们在同一个项目中,AngularJS 和 NodeJS 也不会通信。你能帮我解决这个问题吗?如果我想在同一个 Webstorm 项目中同时创建 AngularJS 和 NodeJS,我该如何创建它们之间的链接?

提前致谢。

我在研究中发现了这一点: http://www.infragistics.com/community/blogs/dhananjay_kumar/archive/2015/02/13/how-to-use-nodejs-express-and-bower-to-create-angularjs-apps.aspx 这是我想做的,但我不明白一切,因为使用 Webstorm 更容易

【问题讨论】:

  • 你的困惑。 AngularJs 用于开发前端应用程序。 NodeJs 用于开发服务器端应用程序。您不能以您似乎认为的方式“组合” 2。他们有节点模块,因为这些是他们使用的包,这并不意味着它们是相同的,或者你可以简单地组合它们。 node_modules 和 NodeJs 是两个不同的东西。您应该运行您的 nodejs 来提供数据库的内容。然后使用您的 Angular 应用程序将此内容呈现给用户。
  • 很难理解你在这里问什么。 Node.js 和 Angular 是完全不同的技术。当然,您可以配置一个 Node.js http 服务器来为 Angularjs 应用程序提供服务。也许发布一些代码可以帮助我?
  • 你希望通过组合它们来实现什么?
  • 我意识到 AngularJS 和 NodeJS 之间的区别,一个是前端,另一个是后端,这就是我想要做的:前端和后端的完整应用在同一个项目中
  • 如果我只做 NodeJS,有可能在不使用 AngularJS 的情况下让 html 文件显示视图,但是因为我想在 Angular 中使用一些功能(视图之间的路由,显示动态数据..)我做了一个 angularJS 应用程序,现在我不知道如何链接它们

标签: javascript angularjs node.js


【解决方案1】:

您应该使用Express Generator 启动一个新应用并检查它创建的文件夹结构。

我有一个用 expressjs 和 angularjs 构建的小应用程序,文件夹结构如下:

  • bin
  • 配置
  • 型号
  • node_modules
  • 公开
    • javascript
      • 在这里所有的角废话(当然在子文件夹中)
  • 路线
  • 测试
  • 查看次数
    • index.html(这是我的主要 html 文件,这里是角度加载的地方)
  • app.js

为此,我必须更改视图引擎以使用 .html 然后,当您访问 localhost:3000 时,服务器会呈现 index.html (localhost:3000/#/),它会加载 angular 和所有废话。 我所有的角度资源都转到 /api/yourModel。

因此,如果您访问 localhost:3000/api/yourModel,您将直接访问 api。

对我来说,这很好用,正如你所说,你拥有一切。前端和服务器在同一个“项目”中。

【讨论】:

  • 谢谢,当我制作 nodeJS 应用程序时,这是我得到的那种结构,当我这样做时,路由将由 AngularJS 管理还是在子文件夹中路由?
  • 好吧,你将有两个“路由”。在“服务器”端,您必须使用 express 处理不同的路由。然后在前面,有角度的你将不得不处理前面的路线。例如使用 ui-router。
  • 对于 AngularJS 应用程序的 bower_components,它们也与 public/javascripts 一起使用?
  • 我没怎么用过bower,我觉得你可以选择把bower_components文件夹放在哪里。无论如何,我怀疑你应该把它放在 public/javascripts 中。也许在公共场合/。
【解决方案2】:

按照 user1655756 的建议,我所做的是创建一个新的 nodeJS 应用程序,然后我注入了 angularJS 应用程序文件夹,而不是公开的。 然后按照 Node.js 中 Shaffanhoon 的建议,我指定了 index.html 的路径,这对我有用.. 谢谢大家的帮助

【讨论】: