Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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/38.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 Express JS Node JS multer集成问题_Javascript_Node.js_Express - Fatal编程技术网

Javascript Express JS Node JS multer集成问题

Javascript Express JS Node JS multer集成问题,javascript,node.js,express,Javascript,Node.js,Express,我正在实施本教程,我已经做了相应的工作,但当我使用更新的express js时,它会在express js端抛出一个错误 错误 C:\nodefiles\new\node_modules\express\lib\application.js:209 throw new TypeError('app.use() requires middleware functions'); ^ TypeError: app.use() requires middleware function

我正在实施本教程,我已经做了相应的工作,但当我使用更新的express js时,它会在express js端抛出一个错误

错误

    C:\nodefiles\new\node_modules\express\lib\application.js:209
throw new TypeError('app.use() requires middleware functions');
      ^
TypeError: app.use() requires middleware functions
    at EventEmitter.use (C:\nodefiles\new\node_modules\express\lib\application.js:209:11)
    at Object.<anonymous> (C:\nodefiles\new\server.js:9:5)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3
这可能是因为Express JS更新版本,请告诉我服务器端应该做哪些更改才能使其正常工作


您还可以从github存储库获取所有前端代码

multer改变了api。您所遵循的教程已过时。当然,您可以使用旧版本的multer,但存在一些问题。 在github multer页面中,有正确的使用上传文件的方法: 从multer页面:

var express = require('express')
var multer  = require('multer')
var upload = multer({ dest: 'uploads/' })

var app = express()

app.post('/profile', upload.single('avatar'), function (req, res, next) {
  // req.file is the `avatar` file
  // req.body will hold the text fields, if there were any
})

app.post('/photos/upload', upload.array('photos', 12), function (req, res, next) {
  // req.files is array of `photos` files
  // req.body will contain the text fields, if there were any
})

我很久以前就试过了,希望对你有帮助

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>

<form method="post" action="http://localhost:3300/api/fileup" name="submit" enctype="multipart/form-data">
    <input type="file" name="profile"> <br /><br />
    <input type="text" name="target">  <br /><br />
    <input type="submit" name="submit" value="Submit">
</form>

</body>

</html>

===============================================


var express = require('express');
var router = express.Router();


var mongodb = require('mongodb');
var uri= require('../config/config').mongouri;
var MongoClient = mongodb.MongoClient;


var multer = require('multer');


/*
var upload = multer({

    dest: 'public/uploads/',
    limits: {fileSize: 1000000, files:1}

});
*/



var storage = multer.diskStorage
({
    destination: function (req, file, cb)
    {
        cb(null, 'public/uploads/')
    },
    filename: function (req, file, cb)
    {
        cb(null, file.fieldname + '-' + Date.now()+'.jpg')
    }
});

var upload = multer({ storage: storage });


router.get('/', function(req, res)
{

    res.render('fileup');

});



router.post('/', upload.single('profile'), function (req, res) {

    res.send(req.body.target);
});






module.exports = router;

标题




=============================================== var express=需要(“express”); var router=express.router(); var mongodb=require('mongodb'); var uri=require('../config/config').mongouri; var MongoClient=mongodb.MongoClient; var multer=需要('multer'); /* var upload=multer({ dest:'public/uploads/', 限制:{文件大小:1000000,文件:1} }); */ var storage=multer.diskStorage ({ 目标:功能(请求、文件、cb) { cb(空,'public/uploads/') }, 文件名:函数(请求、文件、cb) { cb(null,file.fieldname+'-'+Date.now()+'.jpg') } }); var upload=multer({storage:storage}); router.get('/',函数(req,res) { res.render(“fileup”); }); router.post('/',upload.single('profile'),函数(req,res){ res.send(请求主体目标); }); module.exports=路由器;
我真的不明白看完这些文档后该怎么办。请告诉我如何在github教程中实现这一点。我真正需要改变的是什么。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>

<form method="post" action="http://localhost:3300/api/fileup" name="submit" enctype="multipart/form-data">
    <input type="file" name="profile"> <br /><br />
    <input type="text" name="target">  <br /><br />
    <input type="submit" name="submit" value="Submit">
</form>

</body>

</html>

===============================================


var express = require('express');
var router = express.Router();


var mongodb = require('mongodb');
var uri= require('../config/config').mongouri;
var MongoClient = mongodb.MongoClient;


var multer = require('multer');


/*
var upload = multer({

    dest: 'public/uploads/',
    limits: {fileSize: 1000000, files:1}

});
*/



var storage = multer.diskStorage
({
    destination: function (req, file, cb)
    {
        cb(null, 'public/uploads/')
    },
    filename: function (req, file, cb)
    {
        cb(null, file.fieldname + '-' + Date.now()+'.jpg')
    }
});

var upload = multer({ storage: storage });


router.get('/', function(req, res)
{

    res.render('fileup');

});



router.post('/', upload.single('profile'), function (req, res) {

    res.send(req.body.target);
});






module.exports = router;