RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 606060
Accepted
Alz
Alz
Asked:2020-12-21 17:03:15 +0000 UTC2020-12-21 17:03:15 +0000 UTC 2020-12-21 17:03:15 +0000 UTC

如何设置 Angular 2 和 Express 之间的交互?

  • 772

你好。我正在 Angular 2 和 Express 中制作应用程序。当我运行它时,它显示以下错误:

zone.js:1382 GET http://localhost:3000/app/main.js 404 (Not Found)

(index):21 Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:3000/app/main.js
    Error: XHR error (404 Not Found) loading http://localhost:3000/app/main.js
      at XMLHttpRequest.wrapFn [as _onreadystatechange] (http://localhost:3000/static/zone.js/dist/zone.js:698:29)
      at ZoneDelegate.invokeTask (http://localhost:3000/static/zone.js/dist/zone.js:265:35)
      at Zone.runTask (http://localhost:3000/static/zone.js/dist/zone.js:154:47)
      at XMLHttpRequest.ZoneTask.invoke (http://localhost:3000/static/zone.js/dist/zone.js:335:33)
    Error loading http://localhost:3000/app/main.js
      at XMLHttpRequest.wrapFn [as _onreadystatechange] (http://localhost:3000/static/zone.js/dist/zone.js:698:29)
      at ZoneDelegate.invokeTask (http://localhost:3000/static/zone.js/dist/zone.js:265:35)
      at Zone.runTask (http://localhost:3000/static/zone.js/dist/zone.js:154:47)
      at XMLHttpRequest.ZoneTask.invoke (http://localhost:3000/static/zone.js/dist/zone.js:335:33)
    Error loading http://localhost:3000/app/main.js

应用程序.js

var express = require('express');
var app = express();
var path = require('path');
app.use('/static', express.static(__dirname));
app.use('/static', express.static(__dirname + '/node_modules'));
app.get('/', function (req, res) {
  res.sendFile(path.join(__dirname + '/index.html'));
});
app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
});

应用程序/app.module.ts

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent }  from './app.component';
@NgModule({
  imports:      [ BrowserModule],
  declarations: [ AppComponent],
  bootstrap:    [ AppComponent]
})
export class AppModule { }

应用程序/main.ts

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

应用程序/app.component.ts

import { Component } from '@angular/core';
@Component({
  selector: 'my-app',
  template: '<h1>Hello</h1>'
})
export class AppComponent  { }

索引.html

<!DOCTYPE html>
<html>
  <head>
    <title>Test</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/static/styles.css">
    <!-- Polyfill(s) for older browsers -->
    <script src="/static/core-js/client/shim.min.js"></script>
    <script src="/static/zone.js/dist/zone.js"></script>
    <script src="/static/reflect-metadata/Reflect.js"></script>
    <script src="/static/systemjs/dist/system.src.js"></script>
    <script src="/static/systemjs.config.js"></script>
    <script>
      System.import('app').catch(function(err){ console.error(err); });
    </script>
  </head>
  <body>
    <my-app>Loading...</my-app>
  </body>
</html>

包.json

  ...
  "scripts": {
    "start": "tsc && concurrently \"tsc -w\" \"node app\" ",
    "lite": "lite-server",
    "tsc": "tsc",
    "tsc:w": "tsc -w"
  },  
  "dependencies": {
    "@angular/common": "~2.2.0",
    "@angular/compiler": "~2.2.0",
    "@angular/core": "~2.2.0",
    "@angular/forms": "~2.2.0",
    "@angular/http": "~2.2.0",
    "@angular/platform-browser": "~2.2.0",
    "@angular/platform-browser-dynamic": "~2.2.0",
    "@angular/router": "~3.2.0",
    "angular-in-memory-web-api": "~0.1.15",
    "core-js": "^2.4.1",
    "express": "^4.14.0",
    "reflect-metadata": "^0.1.8",
    "rxjs": "5.0.0-beta.12",
    "systemjs": "0.19.40",
    "zone.js": "^0.6.26"
  },
  "devDependencies": {
    "concurrently": "^3.1.0",
    "lite-server": "^2.2.2",
    "typescript": "^2.0.10",
    "@types/node": "^6.0.46"
  }
}

我从 npm start 开始。

node.js
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Alz
    2020-01-03T21:25:35Z2020-01-03T21:25:35Z

    我想通了,也许它会帮助别人。修复app.js中提供静态文件的功能,更改index.html中的路径。一切正常。

    应用程序.js

    var express = require('express');
    var app = express();
    var path = require('path');
    
    app.use(express.static(__dirname));
    
    app.get('/', function (req, res) {
      res.sendFile(path.join(__dirname + '/index.html'));
    });
    app.listen(3000, function () {
      console.log('Example app listening on port 3000!')
    });
    

    索引.html

    <!DOCTYPE html>
    <html>
      <head>
        <title>Смета расходов</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="styles.css">
        <link rel="stylesheet" type="text/css" href="node_modules/primeng/resources/themes/omega/theme.css" />
        <link rel="stylesheet" type="text/css" href="node_modules/font-awesome/css/font-awesome.min.css" />
        <link rel="stylesheet" type="text/css" href="node_modules/primeng/resources/primeng.min.css" />
        <!-- Polyfill(s) for older browsers -->
        <script src="node_modules/core-js/client/shim.min.js"></script>
        <script src="node_modules/zone.js/dist/zone.js"></script>
        <script src="node_modules/reflect-metadata/Reflect.js"></script>
        <script src="node_modules/systemjs/dist/system.src.js"></script>
        <script src="systemjs.config.js"></script>
        <script>
          System.import('app').catch(function(err){ console.error(err); });
        </script>
      </head>
      <body>
        <my-app>Loading...</my-app>
      </body>
    </html>
    
    • 0

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何停止编写糟糕的代码?

    • 3 个回答
  • Marko Smith

    onCreateView 方法重构

    • 1 个回答
  • Marko Smith

    通用还是非通用

    • 2 个回答
  • Marko Smith

    如何访问 jQuery 中的列

    • 1 个回答
  • Marko Smith

    *.tga 文件的组重命名(3620 个)

    • 1 个回答
  • Marko Smith

    内存分配列表C#

    • 1 个回答
  • Marko Smith

    常规赛适度贪婪

    • 1 个回答
  • Marko Smith

    如何制作自己的自动完成/自动更正?

    • 1 个回答
  • Marko Smith

    选择斐波那契数列

    • 2 个回答
  • Marko Smith

    所有 API 版本中的通用权限代码

    • 2 个回答
  • Martin Hope
    jfs *(星号)和 ** 双星号在 Python 中是什么意思? 2020-11-23 05:07:40 +0000 UTC
  • Martin Hope
    hwak 哪个孩子调用了父母的静态方法?还是不可能完成的任务? 2020-11-18 16:30:55 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    Arch ArrayList 与 LinkedList 的区别? 2020-09-20 02:42:49 +0000 UTC
  • Martin Hope
    iluxa1810 哪个更正确使用:if () 或 try-catch? 2020-08-23 18:56:13 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5