node.js - 上传文件时无法读取属性“路径”
问题描述
嗨,我只是想学习节点 js,我正在尝试将文件上传到我计算机中的不同位置,但我遇到了一些问题......这是我的代码......
var http = require('http');
var fs = require('fs');
var formidable = require('formidable');
http.createServer(function(req,res){
if(req.url == '/upload'){
var form = new formidable.IncomingForm();
form.parse(req,function(err,fields,files){
var oldpath = files.filetoupload.path;
var newpath = 'E:/Node/ResumeUpload/' + files.filetoupload.name;
fs.rename(oldpath,newpath,function(err){
if(err) console.log(err);
res.write('File uploaded sucessfully to ' + newpath);
res.end();
})
});
}
else{
fs.readFile('FileUpload.html',function(err,data){
res.writeHead(200,{'Content-Type' : 'text/html'});
res.write(data);
res.end();
});
}
}).listen(9090);
但问题是它显示错误如下
var oldpath = files.filetoupload.path;
TypeError: Cannot read property 'path' of undefined
at E:\Node\FileUploading.js:8:46
at IncomingForm.<anonymous> (E:\Node\node_modules\formidable\lib\incoming_form.js:107:9)
at emitNone (events.js:106:13)
at IncomingForm.emit (events.js:208:7)
at IncomingForm._maybeEnd (E:\Node\node_modules\formidable\lib\incoming_form.js:557:8)
at E:\Node\node_modules\formidable\lib\incoming_form.js:238:12
at WriteStream.<anonymous> (E:\Node\node_modules\formidable\lib\file.js:79:5)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:111:20)
at WriteStream.emit (events.js:208:7)
任何人都可以建议这个问题的原因是什么......!
谢谢你。
解决方案
可以在nodejs中使用try module multer,可以上传文件,可以看到:Multer
//install multer
$ npm install --save multer
推荐阅读
- abap - 将左侧的数值与 WRITE 对齐
- reactjs - Formik,防止formik在编辑字段时验证其他字段?
- android - 使用 YouTube v3 api 身份验证时 OAuth2.0 无效凭据
- controller - hapijs v18 在处理程序完成之前发送响应
- python - Scrapy - 在同一个蜘蛛中同时抓取文本和图像
- reactjs - 为什么 BrowserRouter 渲染一个空白屏幕?
- c++ - 通过 TCP 套接字发送大型 Base64 字符串
- c++ - VS2019 C++跨平台程序中包含nuget包
- matlab - 如何使用 audioread 读取一系列文件然后合并它们?
- python - TextRazor 自定义词典 - AttributeError