2

我通过一个按钮从客户端向我使用 express 创建的服务器发出请求,在请求处理程序中只有 console.log('Delete from server'); 每次我点击它我都会收到这些错误

angular2.dev.js:23514 ORIGINAL EXCEPTION: T
ypeError: Cannot read property    'request' of undefined
angular2-polyfills.js:143 Uncaught EXCEPTION:
Error during evaluation of   "click"
ORIGINAL EXCEPTION: TypeError: Cannot read property 'request' of undefined
ORIGINAL STACKTRACE:

文件结构是,有两个文件夹 server 和 client 分别有 angular 和 server 文件

这是按钮单击的功能:

 deletefromserver(){
     this.http.request("http://localhost:3000/deletedata").subscribe((res :     Response) => {
        console.log(res.json());
    })     
 }

这是服务器文件中的请求处理程序:

server.get('/deletedata', function(){
console.log('Delete from server');
})
4

2 回答 2

1

我认为您忘记将Http实例注入组件:

@Component({
  (...)
})
export class MyComponent {
  constructor(private http:Http) {
  }
}

在引导您的主要组件时不要忘记添加相应的提供程序:

import {bootstrap} from 'angular2/platform/browser';
import {HTTP_PROVIDERS} from 'angular2/http';
import {AppComponent} from './app.component';

bootstrap(AppComponent, [ HTTP_PROVIDERS ]);
于 2016-02-10T13:15:38.797 回答
1

您可能忘记在组件中注入 http 服务

你应该有类似的东西:

@Component({...})
class MyComponent {

  constructor(private http: Http) { }

  deleteFromServer() {
    this.http.request("http://localhost:3000/deletedata").subscribe((res : Response) => { console.log(res.json()); })
  }

}

并且不要忘记HTTP_PROVIDERS在您的引导程序中添加:

bootstrap(MyComponent, [HTTP_PROVIDERS]);

你的服务器也应该返回一些东西:

server.get('/deletedata', function(req, res) {
  res.json({hello: 'hello world'});
});
于 2016-02-10T13:16:41.520 回答