Saya menggunakan rangka kerja ekspres dan cuba menggunakan multer middleware untuk memuat naik Ternyata muat naik yang paling asas ialah
var upload = multer({ dest: 'uploads/' }), tetapi saya mendapati tiada fail yang dimuat naik. di sana. Rentetan rawak nama akhiran 16 digit Keperluan saya adalah untuk menyeragamkan penamaan fail, jadi saya menggunakan multer.diskStorage untuk melakukan lebih banyak operasi pada fail Berikut ialah kod saya:
`var express = require('express') ;
var penghala = express.Router();
var multer = memerlukan('multer');
//Tetapkan laluan simpan
//var upload = multer({ dest: 'uploads/' })
/ DAPATKAN halaman utama /
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
storan var = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/uploads');
},
filename: function (req, file, cb) {
cb(null, file.fieldname+"-"+Date.now());
}
});
var upload = multer({ storage: storage });
router.post('/upload', upload.single('image')), function(req, res, next){
var image=req.file.path;
res.send('index', { title : 'Express' ,image:image});
}
module.exports = penghala;
`
Saya rasa ini sepatutnya demo yang paling asas, tetapi ia hanya melaporkan ralat 500 adalah seperti berikut:
POST /upload 500 16.841 ms - 1278
Error: Failed to lookup view "error" in views directory "D:\wx_bandu\views"
at EventEmitter.render (D:\wx_bandu\node_modules\._express@4.15.3@express\lib\application.js:580:17)
at ServerResponse.render (D:\wx_bandu\node_modules\._express@4.15.3@express\lib\response.js:971:7)
at D:\wx_bandu\app.js:45:7
at Layer.handle_error (D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\layer.js:71:5)
at trim_prefix (D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\index.js:315:13)
at D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\index.js:284:7
at Function.process_params (D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\index.js:335:12)
at next (D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\index.js:275:10)
at Layer.handle_error (D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\layer.js:67:12)
at trim_prefix (D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\index.js:315:13)
Saya membaca banyak maklumat di Internet dan juga di github, tetapi saya rasa saya tidak dapat mencari sebabnya Tolong beri saya panduan
500 ialah ralat pelayan, baris 45 app.js salah,
res.send('index', { title : 'Express' ,image:image});
, adakah anda akan memindahkan fail ke penyemak imbas?Selepas mengerjakannya untuk masa yang lama, ralat lalai.jed tidak dapat dipaparkan kerana saya menggunakan templat pug dan kemudiannya menukarnya Ralat itu jelas sekali imbas Laluan yang ditetapkan oleh destinasi bermula dari direktori akar cakera keras Sebagai contoh, saya menulis / muat naik, Laluan storan ialah D://uploads Kerana tidak ada folder sedemikian, ia terus melaporkan ralat dan ia akan menjadi baik