当前位置: 首页 > 知识库问答 >
问题:

连接角度

上官羽
2023-03-14

我正在学习一门连接node.js和Angular的课程。我正在按照教程,但我得到了一个错误,我不知道该怎么办。有人能帮忙吗?

这是我得到的错误

TypeError:错误。json不是CatchSubscriber的函数。CatchSubscriber上的eval[作为选择器](message.service.ts?5cfd:25)。MapSubscriber出现错误(catchError.js?0867:104)_下一个(map.js?c4af:82)位于MapSubscriber.Subscriber。下一个(Subscriber.js?215e:90)位于XMLHttpRequest。ZoneDelegate上的onLoad(http.js?7a71:1591)。在Object上调用任务(zone.js?fad3:421)。ZoneDelegate的onInvokeTask(core.js?223c:4744)。在zone调用任务(zone.js?fad3:420)。在ZoneTask上运行任务(zone.js?fad3:188)。在XMLHttpRequest的invokeTask(zone.js?fad3:1536)中调用任务[as invoke](zone.js?fad:495)。globalZoneWareCallback(zone.js?fad3:1562)

这些是文件。

消息输入组件 在这里,我输入新消息的内容:

import {Component} from "@angular/core";
import {MessageService} from "./message.service";
import {Message} from "./message.model";
import {NgForm} from "@angular/forms";

@Component({
    selector: 'app-message-input',
    templateUrl: './message-input.component.html'
})

export class MessageInputComponent {

    constructor(private messageService: MessageService){
    }

    onSubmit(form: NgForm) {
        const message = new Message(form.value.content, 'Tijl')
        this.messageService.addMessage(message)
            .subscribe(
                data => console.log(data),
                error => console.error(error)
            );
        form.resetForm()

    }
}

消息服务:这里我连接到Node.js后端

import {Message} from "./message.model";
import {Http, Response} from "@angular/http";
import {Injectable} from "@angular/core";
import 'rxjs/rx';
import {Observable} from "rxjs/Observable";


@Injectable()
export class MessageService {
    private messages: Message[] = [];

    constructor(private http: Http){}

    addMessage(message: Message) {
        this.messages.push(message)
        // turn your message into json format
        const body = JSON.stringify(message);
        // pass this body to the post request
        // we subscribe in the component itself, so not in this service. We need the data
        // in the component so that's where we'll subscribe to it
        return this.http.post('http://localhost:3000/message', body)
            // json method allows to extract the data (not headers and such)
        // and convert it to Javascript object
            .map((response: Response) => response.json())
            .catch((error: Response) => Observable.throw(error.json()));
    }
}

它连接到的后端路由文件:

var快车=要求('快车');var路由器=快车。路由器();

var Message = require('../models/message ');

router.post('/', function (req,res,next){
    var message = new Message({
        content: req.body.content
    });
    message.save(function(err, result) {
        if (err) {
            return res.status(500).json({
                title: 'An error occurred',
                error: err
            });
        }
        res.status(201).json({
            message: 'Saved message',
            // this object is what we'll receive in the front-end
            // and what we'll convert using the response.json() method
            obj: result
        })
    })
});

module.exports = router;

共有1个答案

何越
2023-03-14

好的,伙计们,

我发现了哪里出了问题。代码很好,我只是在进行更改后忘记重新启动服务器。

 类似资料:
  • 概述 连接片是最常用的机械部件,可以与各种梁连接以构建机器人结构。 板上的各种孔径也让您轻松连接轴承和电机。 参数 材质:60601铝 厚度:3mm 尺寸图纸 搭建案例

  • 我目前试图设置一个管理员角色,以便访问一个简单的管理页面,使用以下留档通过提供:连接角色 我已经有一段时间不停地用我的头来撞击它,但我仍然不知道如何设置角色,例如,现在我正在从数据库中提取一个管理值,并暂时将其存储在一个全局变量中,但我不知道如何将其用于连接角色,比如只允许特定用户访问我的管理页面。 如果我的文档没有帮助我确保仅当用户是管理员时才能访问网页,那么有人可以澄清或展示如何执行此操作的示

  • 我有一个Laravel echo服务器,在本地服务器上运行Redis。我创建了一个测试APIendpoint,它发出可广播事件。 我设置laravel-echoauth密钥,我可以从服务器API获取统计信息。 问题在于通过ws:协议从Angular连接到echo服务器。我的连接代码是 最后,我得到了一个错误:WebSocket连接到ws://127.0.0.1:6001/失败:连接在收到握手响应之

  • 问题内容: 我正在努力在要创建的桌子上设置角度分页。 我已经完成了文档工作。但是,我没有看到如何将分页连接到表。我的分页大小与数组大小匹配。它们是正确数量的按钮链接,用于页面的页面长度。但是,我的桌子仍然全长,无法测试分页。 这是我的桌子主体 我已经将表格主体设置在 表格标签的 外面,在里面尝试了它,但是我的分页控件没有出现。 这是我的分页 我还设置了一个 p标签,以确保选项卡响应 段落内的总项目

  • 问题内容: 我正在尝试学习AngularJS。作为其中的一部分,我想学习使用端到端测试。目前,我有这样的目录结构: 我的config.js文件如下所示: test.e2e.js如下所示: 当我尝试使用量角器运行端到端测试时,我从命令行运行以下命令: 运行该命令时,出现以下错误: 我究竟做错了什么? 问题答案: 我用–standalone标志解决了这个问题:

  • 我想用量角器和BrowserStack运行测试。我跟踪了这个帖子,我背后的一个代理。我已安装browserstack local,并使用以下命令运行它: 一切似乎都起作用了,因为我有这样的信息: 谢谢