Javascript 简单平均应用程序中的500内部服务器错误

Javascript 简单平均应用程序中的500内部服务器错误,javascript,angularjs,node.js,mongodb,mean-stack,Javascript,Angularjs,Node.js,Mongodb,Mean Stack,我正在Thinkster.io上做一个简单的MEAN stack教程,其中包括创建一个简单的新闻应用程序。当我尝试将新项目发布到服务器时,会出现此错误,posthttp://localhost:3000/posts 500(内部服务器错误)。它非常模糊,我不知道如何调试它。在chrome中,我只能将错误追溯到这个方法 //method in service o.create = function(post) { return $http.post('/posts', post).

我正在Thinkster.io上做一个简单的MEAN stack教程,其中包括创建一个简单的新闻应用程序。当我尝试将新项目发布到服务器时,会出现此错误,
posthttp://localhost:3000/posts 500(内部服务器错误)
。它非常模糊,我不知道如何调试它。在chrome中,我只能将错误追溯到这个方法

//method in service
o.create = function(post) {
        return $http.post('/posts', post).success(function(data) {
            o.posts.push(data);
    });
};  

但问题显然出在后端。即使您不愿意筛选代码,请概述我如何为自己调试此代码。这是我的回购协议的链接。

铬输出

XHR finished loading: GET "http://localhost:3000/posts". angular.js:9818
POST http://localhost:3000/posts 500 (Internal Server Error) angular.js:9818
XHR finished loading: POST "http://localhost:3000/posts". angular.js:9818
CMD输出

发布模型上的评论字段需要一个评论ID数组。您正在尝试在“创建帖子”路由中创建评论。你应该将帖子保存为原样,然后在事后添加评论。或者先创建注释,然后将ID数组传递给注释字段

var mongoose = require('mongoose');

var CommentSchema = new mongoose.Schema({
  body: String,
  author: String,
  upvotes: {type: Number, default: 0}
});

CommentSchema.methods.upvote = function(cb) {
    this.upvotes += 1;
    this.save(cb);
}

mongoose.model('Comment', CommentSchema);
我必须添加/更新Comments.js文件。

user.js

如果您使用此代码注册

const express = require("express");
const bcrypt = require('bcrypt')

const router = express.Router();
const User = require("../models/user")

router.post("/register", (req, res, next) =>{
    bcrypt.hash(req.body.password, 10)
    .then(hash =>{
        const user = new User({
            email: req.body.email,
            password: hash
        });
        user.save()
        .then(result => {
            res.status(201).json({
                message: "User created!",
                result: result
            })
        })
        .catch(err =>{
            res.status(500).json({
                err:err 
            })
        })
    })
});
module.exports = router;
*和角度文件auth-service.ts*

因此,在注册时,使用相同邮件注册时会发生此错误 嗯


当错误发生在服务器端时,显示客户端代码是没有意义的。
500(内部服务器错误)
意味着服务器端脚本有问题。是的,我意识到这一点。只是觉得这可能会让人们知道我在做什么@Phill您的服务器的控制台输出是什么样子的?这看起来像Chrome的日志。实际服务器上的输出是什么样子的?它应该在启动NodeJS的控制台中编写一些东西
const express = require("express");
const bcrypt = require('bcrypt')

const router = express.Router();
const User = require("../models/user")

router.post("/register", (req, res, next) =>{
    bcrypt.hash(req.body.password, 10)
    .then(hash =>{
        const user = new User({
            email: req.body.email,
            password: hash
        });
        user.save()
        .then(result => {
            res.status(201).json({
                message: "User created!",
                result: result
            })
        })
        .catch(err =>{
            res.status(500).json({
                err:err 
            })
        })
    })
});
module.exports = router;
   import { Injectable } from "@angular/core";
import { HttpClient } from "@angular/common/http";
import { AuthData } from "./auth-data.model";

@Injectable({providedIn: "root"})

export class AuthService{
    constructor(private http: HttpClient ) {}

    createUser(email: string, password: string ){
        const authData: AuthData =  { email: email, password: password };
        this.http.post("http://localhost:3000/api/user/register", authData)
        .subscribe(Response =>{
            console.log(Response);
        })
    }
}