Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.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/2/node.js/33.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
Javascript 将图像上载到Node.js image';未定义的_Javascript_Node.js_Express_File Upload - Fatal编程技术网

Javascript 将图像上载到Node.js image';未定义的

Javascript 将图像上载到Node.js image';未定义的,javascript,node.js,express,file-upload,Javascript,Node.js,Express,File Upload,对不起,缩进不好 我是node.js新手,正在尝试将图像上载到node.js 核对答案,如果我错了,请告诉我 1.bodyParser需要一个中间件来处理二进制文件,如图像 如果我不使用它,它会显示出来 取消定义令牌 2.使用Multer作为中间件,如下所示 follow,req.files是映像文件,req.body是文件名 所以我使用fs.readFile来读取文件 4.如果需要文件路径和文件名,则使用req.body 5.然后通过此命令将数据写入目标 我不确定我错过了什么部分,我花了10个

对不起,缩进不好 我是node.js新手,正在尝试将图像上载到node.js 核对答案,如果我错了,请告诉我

1.bodyParser需要一个中间件来处理二进制文件,如图像 如果我不使用它,它会显示出来

取消定义令牌

2.使用Multer作为中间件,如下所示

  • follow,req.files是映像文件,req.body是文件名 所以我使用fs.readFile来读取文件
  • 4.如果需要文件路径和文件名,则使用req.body

    5.然后通过此命令将数据写入目标

    我不确定我错过了什么部分,我花了10个小时才完成,请帮忙

    它总是告诉我TypeError:无法读取未定义的属性“image”

    app.js

    var    express = require('express')
          ,bodyParser = require('body-parser')
          ,app = express()
          ,multer  =  require('multer')
          ,binary = require('binary')
          ,fs = require('fs')
          ,util= require('util')
          ,http = require('http')
          ,multer = require('multer')
          ,upload = multer({ dest: '/Node/file-upload/uploads/' });
    
     app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies.
     app.use(bodyParser.json({limit: '5mb'}));
    
    
    songs = require('./routes/route');
    
    app.listen(3000, function () {
          console.log('Example app listening on port 3000!');
                              });
    app.post('/upload',upload.array(),songs.upload);
    
    app.post('/upload',upload.array('image',1),songs.upload);
    
    route.js

    var mongoose = require('mongoose');
    var uri = "mongodb://xxxxxx:xxxxxxx@ds061365.mongolab.com:61365/aweitest";
    mongoose.connect(uri);
    // we're connected!
    var db = mongoose.connection.db;
    var BSON = require('bson').BSONPure;
    var binary = require('binary');
    var body = require('body-parser');
    var fs = require('fs');
    
    db.on('error', console.error.bind(console, 'connection errrrrrrrror:'));
    
    db.once('open', function() {
         console.log("mongodb is connected!!");
     });
    
    exports.upload = function(req, res) {
        console.log(req.body);
           fs.readFile(req.files.image.path, function (err, data){
                var dirname = "/Node/file-upload/uploads/";
                var newPath = dirname + req.body.image.filename;
           fs.writeFile(newPath, data, function (err) {
                if(err){
                    res.json({'response':"Error"});
                }else {
                    res.json({'response':"Saved"});
              }
           });
        });
      };
    
    var mongoose = require('mongoose');
    var uri = "mongodb://xxxxxx:xxxxxxx@ds061365.mongolab.com:61365/aweitest";
    mongoose.connect(uri);
    // we're connected!
    var db = mongoose.connection.db;
    var BSON = require('bson').BSONPure;
    var binary = require('binary');
    var body = require('body-parser');
    var fs = require('fs');
    
    db.on('error', console.error.bind(console, 'connection errrrrrrrror:'));
    
    db.once('open', function() {
         console.log("mongodb is connected!!");
     });
    
    exports.upload = function(req, res) {
        console.log(req.body);
           fs.readFile(req.files.image[0].path, function (err, data){
                var dirname = "/Node/file-upload/uploads/";
                var newPath = dirname + req.body.image.filename;
           fs.writeFile(newPath, data, function (err) {
                if(err){
                    res.json({'response':"Error"});
                }else {
                    res.json({'response':"Saved"});
              }
           });
        });
      };
    
    错误

    app.js
    中的
    upload.array()

    upload.array('image',1) // 1 here is number of files you would upload
    
    在您的
    songs.upload
    中间件中,您将获得req.files.image作为一个数组

    因此,您最好检查数组的长度,并对其进行迭代以保存每个文件,或者如果您只想保存一个文件,则可以执行以下操作

    例如:

    app.js

    var    express = require('express')
          ,bodyParser = require('body-parser')
          ,app = express()
          ,multer  =  require('multer')
          ,binary = require('binary')
          ,fs = require('fs')
          ,util= require('util')
          ,http = require('http')
          ,multer = require('multer')
          ,upload = multer({ dest: '/Node/file-upload/uploads/' });
    
     app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies.
     app.use(bodyParser.json({limit: '5mb'}));
    
    
    songs = require('./routes/route');
    
    app.listen(3000, function () {
          console.log('Example app listening on port 3000!');
                              });
    app.post('/upload',upload.array(),songs.upload);
    
    app.post('/upload',upload.array('image',1),songs.upload);
    
    route.js

    var mongoose = require('mongoose');
    var uri = "mongodb://xxxxxx:xxxxxxx@ds061365.mongolab.com:61365/aweitest";
    mongoose.connect(uri);
    // we're connected!
    var db = mongoose.connection.db;
    var BSON = require('bson').BSONPure;
    var binary = require('binary');
    var body = require('body-parser');
    var fs = require('fs');
    
    db.on('error', console.error.bind(console, 'connection errrrrrrrror:'));
    
    db.once('open', function() {
         console.log("mongodb is connected!!");
     });
    
    exports.upload = function(req, res) {
        console.log(req.body);
           fs.readFile(req.files.image.path, function (err, data){
                var dirname = "/Node/file-upload/uploads/";
                var newPath = dirname + req.body.image.filename;
           fs.writeFile(newPath, data, function (err) {
                if(err){
                    res.json({'response':"Error"});
                }else {
                    res.json({'response':"Saved"});
              }
           });
        });
      };
    
    var mongoose = require('mongoose');
    var uri = "mongodb://xxxxxx:xxxxxxx@ds061365.mongolab.com:61365/aweitest";
    mongoose.connect(uri);
    // we're connected!
    var db = mongoose.connection.db;
    var BSON = require('bson').BSONPure;
    var binary = require('binary');
    var body = require('body-parser');
    var fs = require('fs');
    
    db.on('error', console.error.bind(console, 'connection errrrrrrrror:'));
    
    db.once('open', function() {
         console.log("mongodb is connected!!");
     });
    
    exports.upload = function(req, res) {
        console.log(req.body);
           fs.readFile(req.files.image[0].path, function (err, data){
                var dirname = "/Node/file-upload/uploads/";
                var newPath = dirname + req.body.image.filename;
           fs.writeFile(newPath, data, function (err) {
                if(err){
                    res.json({'response':"Error"});
                }else {
                    res.json({'response':"Saved"});
              }
           });
        });
      };
    

    谢谢回复,我更改了“app.post('/upload',upload.array(),songs.upload);”仍然在“fs.readFile(req.files.image[0].路径,函数(err,data)”
    upload.array('image',1)
    btw处回复“无法读取未定义”的属性“image””,我使用POSTMAN测试此apiI检查它将文件定义为,我使用POSTMAN检查标头是否为内容类型→ 内容类型此内容文本的mime类型/html;charset=utf-8不确定出了什么问题…我认为这是内容类型问题,我将尽快尝试解决此问题
    var mongoose = require('mongoose');
    var uri = "mongodb://xxxxxx:xxxxxxx@ds061365.mongolab.com:61365/aweitest";
    mongoose.connect(uri);
    // we're connected!
    var db = mongoose.connection.db;
    var BSON = require('bson').BSONPure;
    var binary = require('binary');
    var body = require('body-parser');
    var fs = require('fs');
    
    db.on('error', console.error.bind(console, 'connection errrrrrrrror:'));
    
    db.once('open', function() {
         console.log("mongodb is connected!!");
     });
    
    exports.upload = function(req, res) {
        console.log(req.body);
           fs.readFile(req.files.image[0].path, function (err, data){
                var dirname = "/Node/file-upload/uploads/";
                var newPath = dirname + req.body.image.filename;
           fs.writeFile(newPath, data, function (err) {
                if(err){
                    res.json({'response':"Error"});
                }else {
                    res.json({'response':"Saved"});
              }
           });
        });
      };