文件未在nodejs中上载,它显示错误,它是:nodemon应用程序崩溃-等待文件更改,然后再启动... nodejs
代码:
var path = require('path');
var express = require('express');
var multer = require('multer');
var app = express();
var Storage = multer.diskStorage({
destination: './public/uploads/',
filename: (req, file, cb) => {
cb(null, file.fieldname+"-"+Date.now()+path.extname(file.orignalname));
}
})
var upload = multer({
storage: Storage
}).single('file');
app.use(express.static(__dirname+"/public"));
app.post('/uploadFile', upload , (req, res, next) => {
res.send("Uploaded File: "+ req.file.filename);
})
app.listen(3000, () => console.log("Server Running at http://localhost:3000/"))
错误:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
at validateString (internal/validators.js:125:11)
at Object.extname (path.js:830:5)
at DiskStorage.filename [as getFilename] (D:\nodejs\index.js:9:47)
at D:\nodejs\node_modules\multer\storage\disk.js:34:10
at DiskStorage.getDestination (D:\nodejs\node_modules\multer\storage\disk.js:22:51)
at DiskStorage._handleFile (D:\nodejs\node_modules\multer\storage\disk.js:31:8)
at D:\nodejs\node_modules\multer\lib\make-middleware.js:144:17
at allowAll (D:\nodejs\node_modules\multer\index.js:8:3)
at wrappedFileFilter (D:\nodejs\node_modules\multer\index.js:44:7)
at Busboy.<anonymous> (D:\nodejs\node_modules\multer\lib\make-middleware.js:114:7)
[nodemon] app crashed - waiting for file changes before starting...
答案 0 :(得分:3)
当nodemon因该错误而崩溃时,表明您的代码存在问题,阻止了它的启动。
错误消息的第一行是实际错误:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
您必须已经将undefined而不是字符串传递给函数,我猜这行:
cb(null, file.fieldname+"-"+Date.now()+path.extname(file.orignalname));
可能在file.originalname
部分,您应该检查是否已定义