Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我正在尝试在MEAN stack应用程序中上载图像,但当我单击submit按钮时,页面将继续进行连续加载_Node.js_Angular - Fatal编程技术网

Node.js 我正在尝试在MEAN stack应用程序中上载图像,但当我单击submit按钮时,页面将继续进行连续加载

Node.js 我正在尝试在MEAN stack应用程序中上载图像,但当我单击submit按钮时,页面将继续进行连续加载,node.js,angular,Node.js,Angular,这是我的密码 只要我点击表单提交按钮,屏幕就会一直加载。但是没有显示错误。请有人帮我解决这个问题。谢谢你的回复。我在后端使用multer和mime类型验证器来过滤只有jpeg、jpg和png图像的图像。 前端: import { Component, OnInit } from '@angular/core'; import { FormGroup, FormControl, Validators } from "@angular/forms"; import{AdminteacherServi

这是我的密码 只要我点击表单提交按钮,屏幕就会一直加载。但是没有显示错误。请有人帮我解决这个问题。谢谢你的回复。我在后端使用multer和mime类型验证器来过滤只有jpeg、jpg和png图像的图像。 前端:

import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl, Validators } from "@angular/forms";
import{AdminteacherService} from '../Services/adminteacher.service';
import { MatSpinner } from '@angular/material';
import { HttpClient } from "@angular/common/http";
import { mimeType } from "./mime-type.validator";

import { ActivatedRoute, ParamMap } from "@angular/router";
import {TeacherModel} from '../../../backend/model/teacher';

@Component({
  selector: 'app-adminteacher',
  templateUrl: './adminteacher.component.html',
  styleUrls: ['./adminteacher.component.css']
})
export class AdminteacherComponent implements OnInit {

  enteredName = "";
  enteredSSN = "";
  enteredBranch = "";
  enteredPassword = "";

  post: TeacherModel;
  isLoading = false;
  form: FormGroup;
  imagePreview: string;
  private mode = "create";
  private postId: string;

  constructor(public postsService: AdminteacherService,
    public route: ActivatedRoute,
    private http:HttpClient) { }

    ngOnInit() {
      this.form = new FormGroup({
        name: new FormControl(null, {
          validators: [Validators.required, Validators.minLength(3)]
        }),
        ssn: new FormControl(null, { validators: [Validators.required] }),
        branch: new FormControl(null, { validators: [Validators.required] }),
        password: new FormControl(null, { validators: [Validators.required] }),
        image: new FormControl(null, {
          validators: [Validators.required],
          asyncValidators: [mimeType]
        })
      });

    }

      onImagePicked(event:Event) {
        const file = (event.target as HTMLInputElement).files[0];
        this.form.patchValue({ image: file });
        this.form.get("image").updateValueAndValidity();
        const reader = new FileReader();
        reader.onload = () => {
          this.imagePreview = reader.result as string;
        };
        reader.readAsDataURL(file);
      }






  onSavePost() {
    if (this.form.invalid) {
      return;
    }
    this.isLoading = true;
    if (this.mode === "create") {
      this.postsService.addPost(
        this.form.value.name,
        this.form.value.image,
        this.form.value.ssn,
        this.form.value.branch,
        this.form.value.password

      );
    }
postForm.value.ssn,postForm.value.password,postForm.value.branch,postForm.value.image);
      this.form.reset();
  }
}
服务文件:

import { HttpClient } from "@angular/common/http";
import { Subject } from "rxjs";
import { map } from "rxjs/operators";
import { Router } from "@angular/router";
import {TeacherModel} from '../../../backend/model/teacher';

@Injectable({
  providedIn: 'root'
})
export class AdminteacherService {

  constructor(private http:HttpClient) { }

    postData:TeacherModel;

  addPost(name: string,image:File,ssn: string,branch:string,password:string) {
    const postData=new FormData();
    postData.append("name",name);
    postData.append("image",image,name);
    postData.append("ssn",ssn);
    postData.append("branch",branch);
    postData.append("password",password);

    console.log("I am here");
    this.http
      .post<{message: string; postId: string}>(
        "http://localhost:3000/admin/addteacher",
        postData
      )
      console.log("I am not here");

}
}

控制台中有错误吗?您是否尝试在我们的briwser控制台上调试代码?没有控制台错误
const express=require("express");
const multer=require("multer");

const Post=require("../model/teacher");
const router=express.Router();
const mongoose = require('mongoose');


mongoose.connect('mongodb://localhost:27017/MyMINIPROJECT', { useNewUrlParser: true , useUnifiedTopology: true});


const MIME_TYPE_MAP={
    'image/png' : 'png',
    'image/jpeg' : 'jpg',
    'image/jpg' : 'jpg'
};





const storage = multer.diskStorage({
    destination: (req, file, cb) => {
      const isValid = MIME_TYPE_MAP[file.mimetype];
      let error = new Error("Invalid mime type");
      if (isValid) {
        error = null;
      }

    cb(error, "./images");
    },
    filename: (req, file, cb) => {
      const name = file.originalname
        .toLowerCase()
        .split(" ")
        .join("-");
      const ext = MIME_TYPE_MAP[file.mimetype];
      cb(null, name + "-" + Date.now() + "." + ext);
    }
  });




router.post('/admin/addteacher', multer({ storage: storage }).single("image"),
(req, res, next)=>{
    const url = req.protocol + "://" + req.get("host");

    console.log("reached backend");
    const post=new Post({
        name:req.body.name,
        img_link: url + "/images/" + req.file.filename,
        ssn:req.body.ssn,
        branch:req.body.branch,
        password:req.body.password

    }); 


    post.save().then(createdPost => {
        res.status(201).json({
          message: "Post added successfully",
          post: {
            ...createdPost,
            id: createdPost._id
          }
        });
      });

});


module.exports = router;