Node.js Angular2+:实现简单文件上传的最简单方法是什么?我的代码严重失效

Node.js Angular2+:实现简单文件上传的最简单方法是什么?我的代码严重失效,node.js,angular,mongodb,express,Node.js,Angular,Mongodb,Express,我做了一个普通的积垢板,效果很好。angular2+,node.js,express,mongoDB 在我尝试添加上传功能后,它不起作用。 这是一条错误消息 compiler.js:486 Uncaught Error: Template parse errors: Can't bind to 'uploader' since it isn't a known property of 'input'. (" <label for="file">파일</lab

我做了一个普通的积垢板,效果很好。angular2+,node.js,express,mongoDB

在我尝试添加上传功能后,它不起作用。 这是一条错误消息

compiler.js:486 Uncaught Error: Template parse errors:
Can't bind to 'uploader' since it isn't a known property of 'input'. ("           <label for="file">파일</label>

          <input type="file" name="single" ng2FileSelect [ERROR ->][uploader]="uploader" >
            <button type="button" (click)="uploader.uploadAll()">
         "): ng:///BoardModule/BoardCreateComponent.html@22:57
board-create.component.html

<form #boardForm="ngForm" (ngSubmit)="saveBoard(boardForm)">
    <div class="field">
      <div class="control">
        <label for="title">Title</label>
        <input required name="title" id="title" [(ngModel)]="board.title" type="text" class="input">
      </div>
    </div>
    <div class="field">
      <div class="control">
        <label for="author">Author</label>
        <input required name="author" id="author" [(ngModel)]="board.author" type="text" class="input">
      </div>
    </div>

    <div class="field">
      <div class="control">
        <label for="file">파일</label>

      <input type="file" name="single" ng2FileSelect [uploader]="uploader" >
        <button type="button" (click)="uploader.uploadAll()">
        <<span>uploadd..</span>
        </button>

      </div>
    </div>


    <div class="field">
      <div class="control">
        <button class="button is-warning" routerLink="/boards"><i class="fas fa-arrow-left"></i>Back</button>
        <button class="button is-link" type="submit" [disabled]="!boardForm.valid">Create</button>
      </div>
    </div>
  </form>
upload.js

const multer = require('multer');


const storage = multer.diskStorage({
  description:function(request, file, cb){
    cb(null, __dirname + '/../upload');
  }
  filename: function(request, file, cb){
    let datetimestamp=Date.now();
    let originalFileName=file.originalname;

    originalFileName=originalFileName.split('.');
    let originalName=originalFileName[originalFileName.length - 1];

    cb(null, file.filename + '-' + datetimestamp+ '.'+originalName);
  }

});
//starage 객체만들어 multer의 멤버 설정
const upload = multer({
  storage: storage
})
//외부에서 upload객체 사용할 수 있또록 함
module.exports = upload;

请您通过检查下面的代码来实现相同的功能

ust call uploadFile(url, file).subscribe() to trigger an upload

import { Injectable } from '@angular/core';
import {HttpClient, HttpParams, HttpRequest, HttpEvent} from '@angular/common/http';
import {Observable} from "rxjs";

@Injectable()
export class UploadService {

  constructor(private http: HttpClient) { }

  // file from event.target.files[0]
  uploadFile(url: string, file: File): Observable<HttpEvent<any>> {

    let formData = new FormData();
    formData.append('upload', file);

    let params = new HttpParams();

    const options = {
      params: params,
      reportProgress: true,
    };

    const req = new HttpRequest('POST', url, formData, options);
    return this.http.request(req);
  }
}
您可以通过下面的链接获得更多信息


你给我的链接很好用!谢谢!剩下的事情是我需要应用到我的代码和数据库!我可以在以后留下我的下一个问题作为评论吗?
const multer = require('multer');


const storage = multer.diskStorage({
  description:function(request, file, cb){
    cb(null, __dirname + '/../upload');
  }
  filename: function(request, file, cb){
    let datetimestamp=Date.now();
    let originalFileName=file.originalname;

    originalFileName=originalFileName.split('.');
    let originalName=originalFileName[originalFileName.length - 1];

    cb(null, file.filename + '-' + datetimestamp+ '.'+originalName);
  }

});
//starage 객체만들어 multer의 멤버 설정
const upload = multer({
  storage: storage
})
//외부에서 upload객체 사용할 수 있또록 함
module.exports = upload;
ust call uploadFile(url, file).subscribe() to trigger an upload

import { Injectable } from '@angular/core';
import {HttpClient, HttpParams, HttpRequest, HttpEvent} from '@angular/common/http';
import {Observable} from "rxjs";

@Injectable()
export class UploadService {

  constructor(private http: HttpClient) { }

  // file from event.target.files[0]
  uploadFile(url: string, file: File): Observable<HttpEvent<any>> {

    let formData = new FormData();
    formData.append('upload', file);

    let params = new HttpParams();

    const options = {
      params: params,
      reportProgress: true,
    };

    const req = new HttpRequest('POST', url, formData, options);
    return this.http.request(req);
  }
}