【发布时间】:2017-03-30 04:22:26
【问题描述】:
我只是 node.js 的初学者 我会尝试用 xpress 制作一个网站,这样我就可以在那里上传任何东西。 我在我的 Mac 上本地设置服务器。
这是我写的代码
server.js
var express = require('express');
var app = express();
var fs = require("fs");
var bodyParser = require('body-parser');
var multers = require('multer');
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(multers({ dest: '/public/'}));
app.get('/index.html', function (req, res) {
res.sendFile( __dirname + "/" + "index.html" );
})
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 uploaded 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)
})
这些是错误信息
节点上传.js
/Users/dayatura/Documents/node/node_modules/express/lib/application.js:209 throw new TypeError('app.use() 需要中间件函数'); ^
TypeError: app.use() 需要中间件函数 在 EventEmitter.use (/Users/dayatura/Documents/node/node_modules/express/lib/application.js:209:11) 在对象。 (/Users/dayatura/Documents/node/upload.js:10:5)
在 Module._compile (module.js:570:32)
在 Object.Module._extensions..js (module.js:579:10)
在 Module.load (module.js:487:32)
在 tryModuleLoad (module.js:446:12)
在 Function.Module._load (module.js:438:3)
在 Module.runMain (module.js:604:10)
运行时 (bootstrap_node.js:394:7)
在启动时 (bootstrap_node.js:149:9)
请大家帮忙:)
【问题讨论】:
-
multer 的使用不正确。请检查文档一次github.com/expressjs/multer
标签: javascript node.js express