【问题标题】:Using Express server with AngularJS scaffolded by Yeoman generator将 Express 服务器与由 Yeoman 生成器搭建的 AngularJS 结合使用
【发布时间】:2015-03-13 00:19:31
【问题描述】:

我正在尝试将 ExpressJS 与由 AngularJS Yeoman 生成器安装的 Angular 的脚手架版本一起使用。我更喜欢使用 Yeoman 团队创建的脚手架版本,而不是使用 angular-fullstackexpress 版本。所以我在我的项目的服务器文件夹中手动安装了 Express JS。

-app //Angular files are here
-server //Node JS files are here

我认为当前使用的是连接服务器而不是 Express。有没有办法将 grunt 文件改为 require Express?

我认为这是我的 gruntfile.js 中的相关代码:

// The actual grunt server settings
connect: {
  options: {
    port: 9000,
    // Change this to '0.0.0.0' to access the server from outside.
    hostname: 'localhost',
    livereload: 35729
  },
  livereload: {
    options: {
      open: true,
      middleware: function (connect) {
        return [
          connect.static('.tmp'),
          connect().use(
            '/bower_components',
            connect.static('./bower_components')
          ),
          connect().use(
            '/app/styles',
            connect.static('./app/styles')
          ),
          connect.static(appConfig.app)
        ];
      }
    }
  }

【问题讨论】:

    标签: angularjs node.js express gruntjs yeoman


    【解决方案1】:

    配置

    Yeoman 生成的项目可以根据您的需要通过适当地修改项目文件来进一步调整。

    您可以通过将appPath 属性添加到bower.json 来更改应用目录。例如,如果您想轻松与Express.js 集成,您可以添加以下内容:

    {
      "name": "yo-test",
      "version": "0.0.0",
      ...
      "appPath": "public"
    }
    

    这将导致 Yeoman 生成的客户端文件被公开。

    请注意,您也可以通过在启动生成器时添加--appPath 选项来获得相同的结果:

    yo angular [app-name] --appPath=public


    我会说您在生成项目方面做得太过分了,请仔细阅读文档以了解更多详细信息。

    【讨论】:

    • 我正在努力确保我从 Angular 发出的所有通信都发送到我的 Express 服务器,而不是发送到另一台服务器。例如,如果我提交一个表单,我希望它能够发送到我的 Express 服务器。
    • 你能详细说明一下吗?我不明白强制 appPath 为“public”而不是“app”将如何影响我在上面的问题中描述的默认服务器。
    • 我相信 根据文档 publicYeoman 的根,您可以从中配置您的包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    相关资源
    最近更新 更多