无法使用node.js将图像上载到s3 bucket上

无法使用node.js将图像上载到s3 bucket上,node.js,amazon-web-services,amazon-s3,Node.js,Amazon Web Services,Amazon S3,我正在尝试使用s3FS在s3bucket上上传图像。Bucket创建成功,但不知何故,我试图上传图像的api给了我一个错误,说您的路径没有定义。不过,bucket是在aws中创建的,但图像不存在 app.js var express = require('express'); var mongoose = require('mongoose'); var fs = require('fs'); var S3FS = require('s3fs'); var s3fsImpl = new S3FS

我正在尝试使用s3FS在s3bucket上上传图像。Bucket创建成功,但不知何故,我试图上传图像的api给了我一个错误,说您的路径没有定义。不过,bucket是在aws中创建的,但图像不存在

app.js

var express = require('express');
var mongoose = require('mongoose');
var fs = require('fs');
var S3FS = require('s3fs');
var s3fsImpl = new S3FS('folder', {
    accessKeyId: 'id',
    secretAccessKey: 'key'
});

s3fsImpl.create();

var multiparty = require('connect-multiparty'),
    multipartyMiddleware = multiparty();
var bodyParser = require('body-parser');
var jwt = require('jsonwebtoken');
// var multer = require('multer');
// var uuid = require("uuid");
var app = express();
var config = require('./config.js');
var morgan = require('morgan');
// var path = require('path');
var port = process.env.PORT || 3000;
var foodtrucklist = require('./controller/foodtrucklist.js');
var login = require('./controller/login.js');
var itemInfo = require('./controller/item_info.js');
var review = require('./controller/reviews.js');
var popularitems = require('./controller/popularitems.js');
var foodtruck = require('./model/datafoodtruck');
var truckData = require('./model/foodtruck.js');
var webToken = require('./controller/webtoken.js');
var userprofile = require('./controller/userprofile.js');
var notificationdata = require('./model/dataNotifications.js');
var notification = require('./controller/notifications.js');
var foodtruckItemList = require('./controller/item_list_foodtruck.js');
var orderList = require('./controller/orders_foodtruck.js');
var ordermanagement = require('./controller/ordermanagement.js');

var db = mongoose.connect('mongodb://127.0.0.1:27017/quflip');

mongoose.connection.once('connected', function() {
    console.log("Connected to database")
    foodtruck.save(function(err, foodtrucks) {
        if (err) res.send(err);
    });
    notificationdata.save(function(err, notifs) {
        if (err) res.send(err);
    });
});

app.use(multipartyMiddleware);
app.post('/testupload', function(req, res) {
    var file = req.files.file;
    var stream = fs.creatReadStream(file.path);
    return s3fsImpl.writeFile(file.originalFilename, stream).then(function() {
        fs.unlink(file.path, function(err) {
            if (err) console.error(err);
        })
        res.json({
            status:'200',
            message:'uploaded'
        })
    })
});
错误

TypeError: Cannot read property 'path' of undefined
<br> &nbsp; &nbsp;at C:\Users\anand\quFlipApi\app.js:64:41
<br> &nbsp; &nbsp;at Layer.handle [as handle_request] (C:\Users\anand\quFlipApi\node_modules\express\lib\router\layer.js:95:5)
<br> &nbsp; &nbsp;at next (C:\Users\anand\quFlipApi\node_modules\express\lib\router\route.js:131:13)
<br> &nbsp; &nbsp;at Route.dispatch (C:\Users\anand\quFlipApi\node_modules\express\lib\router\route.js:112:3)
<br> &nbsp; &nbsp;at Layer.handle [as handle_request] (C:\Users\anand\quFlipApi\node_modules\express\lib\router\layer.js:95:5)
<br> &nbsp; &nbsp;at C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:277:22
<br> &nbsp; &nbsp;at Function.process_params (C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:330:12)
<br> &nbsp; &nbsp;at next (C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:271:10)
<br> &nbsp; &nbsp;at multipart (C:\Users\anand\quFlipApi\node_modules\connect-multiparty\index.js:50:53)
<br> &nbsp; &nbsp;at Layer.handle [as handle_request] (C:\Users\anand\quFlipApi\node_modules\express\lib\router\layer.js:95:5)
<br> &nbsp; &nbsp;at trim_prefix (C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:312:13)
<br> &nbsp; &nbsp;at C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:280:7
<br> &nbsp; &nbsp;at Function.process_params (C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:330:12)
<br> &nbsp; &nbsp;at next (C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:271:10)
<br> &nbsp; &nbsp;at expressInit (C:\Users\anand\quFlipApi\node_modules\express\lib\middleware\init.js:33:5)
<br> &nbsp; &nbsp;at Layer.handle [as handle_request] (C:\Users\anand\quFlipApi\node_modules\express\lib\router\layer.js:95:5)
<br> &nbsp; &nbsp;at trim_prefix (C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:312:13)
<br> &nbsp; &nbsp;at C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:280:7
<br> &nbsp; &nbsp;at Function.process_params (C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:330:12)
<br> &nbsp; &nbsp;at next (C:\Users\anand\quFlipApi\node_modules\express\lib\router\index.js:271:10)
<br> &nbsp; &nbsp;at query (C:\Users\anand\quFlipApi\node_modules\express\lib\middleware\query.js:44:5)
<br> &nbsp; &nbsp;at Layer.handle [as handle_request] (C:\Users\anand\quFlipApi\node_modules\express\lib\router\layer.js:95:5)
TypeError:无法读取属性';路径';未定义的

在C:\Users\anand\quFlipApi\app.js:64:41
在Layer.handle[作为handle\u请求](C:\Users\anand\qufipapi\node\u modules\express\lib\router\Layer.js:95:5)
下一步(C:\Users\anand\qufipapi\node\u modules\express\lib\router\route.js:131:13)
在Route.dispatch(C:\Users\anand\qufipapi\node\u modules\express\lib\router\Route.js:112:3)
在Layer.handle[作为handle\u请求](C:\Users\anand\qufipapi\node\u modules\express\lib\router\Layer.js:95:5)
在C:\Users\anand\qufipapi\node\u modules\express\lib\router\index.js:277:22
在Function.process_参数处(C:\Users\anand\qufipapi\node\u modules\express\lib\router\index.js:330:12)
下一步(C:\Users\anand\qufipapi\node\u modules\express\lib\router\index.js:271:10)
在multipart(C:\Users\anand\qufipapi\node\u modules\connect multiparty\index.js:50:53)
在Layer.handle[作为handle\u请求](C:\Users\anand\qufipapi\node\u modules\express\lib\router\Layer.js:95:5)
在trim_前缀处(C:\Users\anand\qufipapi\node_modules\express\lib\router\index.js:312:13)
在C:\Users\anand\qufipapi\node\u modules\express\lib\router\index.js:280:7
在Function.process_参数处(C:\Users\anand\qufipapi\node\u modules\express\lib\router\index.js:330:12)
下一步(C:\Users\anand\qufipapi\node\u modules\express\lib\router\index.js:271:10)
在expressInit(C:\Users\anand\qufipapi\node\u modules\express\lib\middleware\init.js:33:5)
在Layer.handle[作为handle\u请求](C:\Users\anand\qufipapi\node\u modules\express\lib\router\Layer.js:95:5)
在trim_前缀处(C:\Users\anand\qufipapi\node_modules\express\lib\router\index.js:312:13)
在C:\Users\anand\qufipapi\node\u modules\express\lib\router\index.js:280:7
在Function.process_参数处(C:\Users\anand\qufipapi\node\u modules\express\lib\router\index.js:330:12)
下一步(C:\Users\anand\qufipapi\node\u modules\express\lib\router\index.js:271:10)
在查询时(C:\Users\anand\qufipapi\node\u modules\express\lib\middleware\query.js:44:5)
在Layer.handle[作为handle\u请求](C:\Users\anand\qufipapi\node\u modules\express\lib\router\Layer.js:95:5)
var file=req.files.file
这里
文件
似乎未定义。我知道,但我已经从邮递员那里传递了数据。然后它将帮助查看您的请求。请求url:,“表单数据”,正文参数--->文件:filename.jpgc您能以curl命令的形式提供请求吗?您确定要在请求中发送文件内容并尝试从请求中的正确位置读取它吗?