在使用body-paser中间件上传文件中,上传不成功
html代码如下
向服务器端上传文件
node.js代码如下:
var express=require('express');
var fs=require('fs');
var app=express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.get('/index.html',function (req,res) {
res.sendFile(__dirname+'/index.html');
});
app.post('/index.html',function (req,res) {
var file=req.files.myfile;
fs.readFile(file.path,function (err,data) {
if(err) res.send('读文件操作失败。');
else{
fs.writeFile(file.name,data,function (err) {
if(err) res.send('写文件操作失败。');
else res.send('文件上传成功。');
})
}
})
});
app.listen(1342,"127.0.0.1");
错误提示:
TypeError: Cannot read property 'myfile' of undefined
at D:\Program Files\nodejs\server.js:14:20
at Layer.handle [as handle_request] (D:\Program Files\nodejs\node_modules\express\lib\router\layer.js:95:5)
at next (D:\Program Files\nodejs\node_modules\express\lib\router\route.js:131:13)
at Route.dispatch (D:\Program Files\nodejs\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (D:\Program Files\nodejs\node_modules\express\lib\router\layer.js:95:5)
at D:\Program Files\nodejs\node_modules\express\lib\router\index.js:277:22
at Function.process_params (D:\Program Files\nodejs\node_modules\express\lib\router\index.js:330:12)
at next (D:\Program Files\nodejs\node_modules\express\lib\router\index.js:271:10)
at urlencodedParser (D:\Program Files\nodejs\node_modules\body-parser\lib\types\urlencoded.js:95:37)
at Layer.handle [as handle_request] (D:\Program Files\nodejs\node_modules\express\lib\router\layer.js:95:5)
node新手,还望不吝赐教!!!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
body-parser不支持文件.multer你可以用这个.app.use(multer({ dest: path.join(__dirname), 'public/uploadDir'}))看看文档 很简单.