Javascript 使用Express fileupload-Node.js上载文件时,没有此类文件或目录错误

Javascript 使用Express fileupload-Node.js上载文件时,没有此类文件或目录错误,javascript,html,node.js,express,ejs,Javascript,Html,Node.js,Express,Ejs,我目前正在尝试上载一个pdf文件,将该文件以我可以查询的名称存储在我的目录中,并将该名称存储在SQL表中。我正在使用Express fileupload,我正在获取文件,但是当我尝试使用.mv移动文件时,我得到一个错误:enoint:没有这样的文件或目录,请打开“/public/files/CLPs/minor_CLP.pdf”错误。以下是“我的帖子”功能的代码: app.post('/uploadCLP', isLoggedIn, function(req, res) { var co

我目前正在尝试上载一个pdf文件,将该文件以我可以查询的名称存储在我的目录中,并将该名称存储在SQL表中。我正在使用Express fileupload,我正在获取文件,但是当我尝试使用
.mv
移动文件时,我得到一个
错误:enoint:没有这样的文件或目录,请打开“/public/files/CLPs/minor_CLP.pdf”
错误。以下是“我的帖子”功能的代码:

app.post('/uploadCLP', isLoggedIn, function(req, res) {
    var communityID = req.user.communityID;

    console.log(req.files);

    var clpFile = req.files.clpFile;
    var clpName = communityID + "_CLP.pdf";

    clpFile.mv('/public/files/CLPs/' + clpName, function(err) {
        if(err)
            return console.log(err);
    });

    var updateQuery = ("UPDATE Community SET clpFile = ? WHERE communityID = ?");
    connection.query(updateQuery, [clpName, communityID], function(err, rows) {
        if(err) throw err;
        res.redirect(302, '/proposal');
    });
});
下面是调用函数的EJS文件中的表单:

<div class="well">
    <form action="/uploadCLP" method="post" enctype="multipart/form-data">
        <div class="form-group">
            <label>Community Learning Plan</label>
            <p>Only upload Community Learning Plans in PDF format.</p>
            <input type="file" accept=".pdf" class="form-control" name="clpFile">
        </div>
</div>
此外,您可以在此处查看我的项目目录:


我不确定问题是我如何设置要保存的文件的目录,还是我试图用其他名称保存文件。任何帮助或提示都将不胜感激!:)

由于路径在开始时使用/,因此它会搜索该文件夹的根路径,而该文件夹本身不是项目的文件夹


因为脚本位于项目的根文件夹中,所以正确的路径应该是
'public/files/CLPs/”

js文件在哪里?你可以试试
。/public/files/CLPs/minor_CLP.pdf
(假设它在app文件夹中)?@KendrickKesley是的,我的js文件位于app文件夹中。我在尝试
。/public/files/CLPs/
时也会遇到同样的错误,如果您上载的文件没有任何目录,该怎么办?它有用吗?e、 g.只是小菜一碟!你的应用程序位于根文件夹中!尝试使用
clpFile.mv('public/files/CLPs/'+clpName,function(err)
没有问题!我提供了答案,以防有人遇到同样的问题
// server.js

// get all the tools we need
var express  = require('express');
var session  = require('express-session');
var favicon = require('express-favicon');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var morgan = require('morgan');

var upload = require('express-fileupload');
var app      = express();
var port     = process.env.PORT || 1848;

var passport = require('passport');
var flash    = require('connect-flash');


require('./config/passport')(passport); // pass passport for configuration

app.use('/public', express.static('public'));

// set up our express application
app.use(morgan('dev')); // log every request to the console
app.use(cookieParser()); // read cookies (needed for auth)
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());

app.set('view engine', 'ejs'); // set up ejs for templating
app.use(upload());

// required for passport
app.use(session({
    secret: 'vidyapathaisalwaysrunning',
    resave: true,
    saveUninitialized: true
 } )); // session secret

app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash()); // use connect-flash for flash messages stored in session


require('./app/routes.js')(app, passport); 

app.listen(port);
console.log('Server running on port ' + port);