2017-06-15 6 views
0

私はNodejs符号化におけるナイーブだったし、さらに問題を解決することはできません、これはファイルのアップロードプログラムです: ここに私のコードです:アプリが実行されているがNodejsアプリケーションで「Can not POST/file_upload」を解決する方法は?

var express=require('express'); 
    var app=express(); 
    var fs=require("fs"); 

    var bodyParser=require('body-parser'); 
    var multer=require('multer'); 
    var jsonParser=bodyParser.json(); 

    app.use(express.static('public')) 
    app.use(bodyParser.urlencoded({extended:false})); 
    var upload=multer({dest:'/tmp/'}); 
    app.get('/index.htm',function(req,res){ 
    res.sendFile(__dirname+"/"+"index.htm"); 
    }) 
    app.post('/file_upload', function (req, res) { 
    console.log(req.files.file.name); 
    console.log(req.files.file.path); 
    console.log(req.files.file.type); 
    var file = __dirname + "/" + req.files.file.name; 


    fs.readFile(req.files.file.path,function(err,data){ 
    fs.writeFile(file,data,function(err){ 
    if(err){ 
    console.log(err);} 
    else{ 
    response={message:'File Upload Successfully', 
    filename:req.files.file.name 
    }; 
    } 
    console.log(response); 
    res.end(JSON.stringify(response)); 
    }); 
    }); 
    }) 


    var server=app.listen(8081,function(){ 
    var host=server.address().address 
    var port=server.address().port 
    console.log("Example app listening at http://%s:%s",host,port) 
    }) 

が、それはplzは、「が/ file_uploadを投稿することはできません示してい何をすべきか教えてください。

答えて

0

この

app.post('/file_upload', function (req, res) { 

     var storage = multer.diskStorage({ 

      destination: function (req, file, callback) { 
       callback(null, '/tmp/'); 
      }, 
      filename: function (req, file, callback) { 
       callback(null, Date.now()+path.extname(file.originalname)); 
      } 
     }); 

     var upload = multer({storage: storage}).single('file'); 

     upload(req, res, function (err) { 
      if (err) { 
       console.log(err); 
      } 
      else { 
       res.status(200); 
       res.json({ 

        message:'File Upload Successfully' 

       }); 
      } 


     }); 

    } 
を試してみてください