Javascript Express JS Node JS multer集成问题
我正在实施本教程,我已经做了相应的工作,但当我使用更新的express js时,它会在express js端抛出一个错误 错误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
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;