Я действительно новичок здесь, и я учусь.Я не могу понять проблему, идущую в моем коде.Я пытаюсь загрузить файл и переместить его в желаемую директорию путем быстрой загрузки файла. Но он всегда показывает эту ошибку.Вот мой код app.js
//DECLARATION
var express = require('express');
var login = require('./controllers/login');
var signup = require('./controllers/signup');
var home = require('./controllers/home');
var logout = require('./controllers/logout');
var admin = require('./controllers/admin');
var member = require('./controllers/member');
var bodyParser = require('body-parser');
var exSession = require('express-session');
var cookieParser = require('cookie-parser');
var busboy = require('then-busboy');
var path = require('path');
var methodOverride = require('method-override')
const fileUpload = require('express-fileupload');
var app = express();
//CONFIGURATION
app.set('view engine', 'ejs');
//MIDDLEWARES
app.use(methodOverride());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());app.use(cookieParser());
app.use(bodyParser.json());
app.use(fileUpload());
app.use('/home', home);
app.use('/admin', admin);
app.use('/member', member);
app.use('/logout', logout);
app.use('/login', login);
app.use('/signup', signup);
app.use('/assets', express.static('ext'));
app.use(express.static(path.join(__dirname, 'ext')));
//ROUTES
app.get('/', (req, res)=> res.render('home/index'));
//SERVER STARTUP
app.listen(3000, function(){
console.log('server started at 3000...');
});
вот мой код роутера: Home.js
var express = require('express');
var userModel = require.main.require('./model/user-model');
var router = express.Router();
router.post("/signup", function(req, res){
var name=req.body.name;
var uname=req.body.uname;
var email=req.body.email;
var mobile=req.body.mobile;
var password=req.body.password;
var type="member";
if (Object.keys(req.file).length == 0) {
return res.status(400).send('No files were uploaded.');
}
// The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file
var sampleFile = req.file.uploaded_image;
// Use the mv() method to place the file somewhere on your server
sampleFile.mv('/assets/images/users'+sampleFile+"."+file.mimetype, function(err) {
if (err)
return res.status(500).send(err);
res.send('File uploaded!');
});
if(name!=""&& uname!=""&&email!=""&&mobile!=""&&password!=""){
var user = {
name:name,
uname: uname,
email:email,
mobile:mobile,
password: password,
type: type,
image:uname,
};
userModel.insert(user, function(status){
if(status){
res.render('seller/success');
}else{
res.render('error');
}
});
}else
{
res.render('error');
}
});
module.exports = router;
И ejs формируют регистрацию.ejs:
<form method="post" >
<table>
<tr>
<td>Name:
</td>
<td><input type="text" name="name"/>
</td>
</tr>
<tr>
<td>Username:
</td>
<td><input type="text" name="uname"/>
</td>
</tr>
<tr>
<td>Email:
</td>
<td><input type="email" name="email"/>
</td>
</tr>
<tr>
<td>Mobile:
</td>
<td><input type="number" name="mobile"/>
</td>
</tr>
<tr>
<td>Password:
</td>
<td><input type="password" name="password"/>
</td>
</tr>
<tr>
<td>
<input type="file" name="uploaded_image" accept=""/>
</td>
<td align="right">
<input type="submit" name="submit" value="Signup" />
</td>
</tr>
</table>
<br>
</form>
Здесь usermodel - это пользовательский модуль, который фактически выполняет несколько операций CRUD.Помоги мне разобраться в моей проблеме.Я пробовал много решений, таких как использование multi-part, methodOverrid и т. Д. Кажется, ничего не работает.