Node.js 在nodejs中合并2个日志文件

Node.js 在nodejs中合并2个日志文件,node.js,angular,multer,Node.js,Angular,Multer,我在服务器中保存了一个文件,假设其路径为data/x.log。我将新文件上载到服务器: import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import { IResponse } from 'src/app/interfaces/response.interface'; import {

我在服务器中保存了一个文件,假设其路径为
data/x.log
。我将新文件上载到服务器:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';

import { IResponse } from 'src/app/interfaces/response.interface';
import { environment } from 'src/environments/environment';

const ENDPOINT = environment.apiUrl + '/log';

@Injectable()
export class HttpUploadService {
    constructor(
        private http: HttpClient,
    ) { }

    public uploadLogFile(file: File): Observable<IResponse> {
        const baseUrl: string = ENDPOINT;
        
        const postData = new FormData();
        postData.append('file', file);

        return this.http.post<IResponse>(baseUrl, { postData });
    }

}
在我的第一种方法中,我尝试使用
multer
package:

const storage = multer.diskStorage({
    destination(req, file, cb) {
        cb(null, './data');
    },
    filename(req, file, cb) {
        cb(null, `x.log`);
    }
});
但据我所知,它只会覆盖文件内容而不进行合并


我该怎么做呢?

我还没听说上传库支持append。您很可能必须手动执行此操作,而无需使用在磁盘上自动存储文件的库

例如,您可以使用busboy以流的形式访问传入文件,然后将其附加到所需的文件中。获得传入流后,可以使用以下内容附加到现有文件:

const fs = require("fs");    
const destination = fs.createWriteStream("data/x.log", {
  flags: "a" // "a" for append
});
incomingFile.pipe(destination);
const fs = require("fs");    
const destination = fs.createWriteStream("data/x.log", {
  flags: "a" // "a" for append
});
incomingFile.pipe(destination);