gpt4 book ai didi

javascript - 使用 Angular 上传后使用 Node 存储图像

转载 作者:可可西里 更新时间:2023-11-01 16:37:56 26 4
gpt4 key购买 nike

我正在使用 mean stack 创建一个网络应用程序,任何用户都可以在其中上传图像,并将其存储在 mongo 数据库或服务器系统的文件夹中。我正在使用 angular-file-upload用于上传图像。问题出在 nodejs 部分,当我尝试打印 req.body 时,它显示一个空对象。

HTML 代码:<input type="file" ng-file-select="onFileSelect($files)" >

Angular 代码:

$scope.onFileSelect = function($files) {
for (var i = 0; i < $files.length; i++) {
var file = $files[i];
console.log(file);
$scope.upload = $upload.upload({
url: '/imagePost/'+Global.user._id,
method: 'POST' ,

data: {myObj: 'image'},
file: file,
}).progress(function(evt) {
console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));
}).success(function(data, status, headers, config) {
console.log('success');
});
}

};

Node 代码:

app.post('/imagePost/:userid',function(req,res){

console.log('I came here');
console.log(req.body);
res.send('');
});

这里我只是尝试打印 requestbody 但我得到一个空对象。我包括了所有的依赖项。如果这不起作用,我想做的是读取图像并根据请求发送它,并在 Node 代码中创建一个新图像,稍后可以将其存储在文件夹中。但是为什么我没有在请求正文中得到任何对象。请帮助我..

最佳答案

我认为您使用的是 Express v4.x

如果是,您将在 req.body 中得到空对象,因为从 Express 4 开始,bodyParser 已被弃用并被 body-parser 取代。

了解从 v3 到 v4 的迁移 here

  • 正文解析器

只支持urlencodedjson,不再支持multipart,如果要使用multipart,需要单独添加

你需要 multipart 来接收来自你客户端的文件

您可以使用以下任何一种;

  1. busboy(推荐,因为它很快)
  2. 多方
  3. mutler(busboy 的包装器,让您的编码生活更轻松
  4. 强大

关于javascript - 使用 Angular 上传后使用 Node 存储图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24034223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com