【问题标题】:Angular call to NodeJS+Express for a basic GET request对 NodeJS+Express 的 Angular 调用以获取基本的 GET 请求
【发布时间】:2018-01-31 16:50:05
【问题描述】:

我只想从 Angular 组件向我的 NodeJS+Express 服务器发出成功的 GET 请求。

someComponent.ts

console.log("Before");
// send to server
console.log(this.http.get('/email').map((res:Response) => { 
  console.log("middle");
  return res; 
}));
console.log("After");

server.js

app.get('/email', function(req, res, next){
    res.send('GET email request');
});

Chrome 控制台输出:

Before
->t
   -> operator: t(thisArg: undefined, project: f)
   -> source: t {_isScalar: false, surce: t, operator t}
      _isScalar: false
   -> __proto__: Object
After

谁能告诉我这段代码是否有问题?我不认为回调函数正在执行,因为控制台没有输出“中间”。我也不知道这个't'应该在控制台中是什么样的http响应对象。正确的控制台日志不应该是“GET email request”而不是这个“t”对象。

【问题讨论】:

    标签: javascript node.js angular express routing


    【解决方案1】:

    在 app.module.ts 中使用 HttpModule:

    import { HttpModule } from '@angular/http';
    

    并添加到导入:[HttpModule]

    您可以简单地输入(在您的组件中):

    constructor(private http: Http){}
    this.http.get('http://full_uri_endpoint:port/email').subscribe(
      res => console.log(res),
      error => console.log(error)
    );
    

    【讨论】:

    • 模块被导入并注入到组件中。对于您的 http 调用和回调,我得到“之前”“之后”“null”,不知道应该表示什么
    • 我不确定你从哪里得到“之前”“之后”“null”。你能告诉我实际发生了什么吗?
    • 我的意思是这是控制台输出,应该记录响应或错误,但如果我在此处查看控制台日志,则返回 null i.imgur.com/gU7DBrH.png
    • 那么你的服务器没有正确返回值。也许是标题问题
    • 对于像 stackoverflow.com 这样的非现场 URL,它会返回相同的结果,所以我不确定:/
    猜你喜欢
    • 1970-01-01
    • 2020-01-15
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多