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/8/http/4.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
Angular 如何附加文件和数据_Angular_Http - Fatal编程技术网

Angular 如何附加文件和数据

Angular 如何附加文件和数据,angular,http,Angular,Http,我有一个数据库(MongoDB)、一个服务器(使用Node-using Express制作)和一个客户端(使用Angular制作)。 我希望我的客户机能够将文件和文本(JSON)上传到节点服务器,然后节点服务器将数据存储在数据库中 我使用邮递员发送图像和数据,以确保服务器设置正确。(见截图) 像这样使用邮递员发送数据很有效。现在我想让我的棱角分明的客户做同样的事情。下面是我正在使用的代码。现在有点乱,因为我试过很多不同的东西 sendToServer(url){ let inputFi

我有一个数据库(MongoDB)、一个服务器(使用Node-using Express制作)和一个客户端(使用Angular制作)。 我希望我的客户机能够将文件和文本(JSON)上传到节点服务器,然后节点服务器将数据存储在数据库中

我使用邮递员发送图像和数据,以确保服务器设置正确。(见截图)

像这样使用邮递员发送数据很有效。现在我想让我的棱角分明的客户做同样的事情。下面是我正在使用的代码。现在有点乱,因为我试过很多不同的东西

sendToServer(url){
    let inputField_Image = <HTMLInputElement>document.getElementById("inputField_image");
    let inputField_Raw = <HTMLInputElement>document.getElementById("inputField_raw");
    let image = inputField_Image.value;
    let raw = inputField_Raw.value;
    let data = JSON.parse(raw);

    let formData: FormData = new FormData();

    formData.append('image', image);

    formData.append('name', data.name);
    formData.append('cost', data.cost);
    formData.append('type', data.type);
    formData.append('subType', data.subType);
    formData.append('text', data.text);
    formData.append('flavor', data.flavor);
    formData.append('power', data.power);
    formData.append('toughness', data.toughness);

    let options = { content: formData };

    //let x = JSON.stringify(formData);

    //console.log(x);

    this.http.post(url, options).subscribe((res)=>{
      console.log('response:', res);
    });

}
服务器端代码与Postman一起工作,因此我认为我的错误在客户端。 如何发送图像文件(使用
元素上载)和数据(使用
元素上载)


编辑:我添加了一个
console.log(req.body)在服务器端-只是为了看看我收到了什么。我得到了:
{content:{}
不知道为什么…

尝试移动
formData.append('image',image)在其他
append
下面,我尝试将其移动到其他
下面,但收到相同的错误消息。似乎我的FormData对象是空的。。
const mongoose = require('mongoose');
const express = require('express');
const router = express.Router();
const PASSWORD = "admin";
const multer = require('multer');
const path = require('path');
const fs = require('fs');

//other code..

router.post('/image', upload.single('image'), function (req, res, next) {
    let imgPath = path.join(__dirname, '../') + req.file.path;
    let imgAsBase64 = base64_encode(imgPath);
    let newCard = req.body;
    newCard.image = imgAsBase64;

    Card.create(newCard).then(function(card){
        console.log('\nThe following Schema was successfully saved to Mongodb:');
        console.log(card.name);
    }).catch(function(error){
        console.log('\nTrying to save a Schema Mongodb, error: \n', error);
    });

    res.send('Successfully uploaded card!');
});

//other code..