Javascript Nodejs将我的图像从视图上载到控制器

Javascript Nodejs将我的图像从视图上载到控制器,javascript,node.js,upload,Javascript,Node.js,Upload,在我的视图中,我选择了一个图像。在我的控制器中,我有一个名为 uploadImage:function(req,res){} 我有一行req.file('photofile')。上传(…… 因此,我现在的问题是..如何将此图像从我的视图传递到我的控制器?以便我可以从req读取它?我假设您有一个绑定到uploadImage函数的路由。如果没有,您可以使用express创建它: var app = require('express')(); app.post('/your/upload/route'

在我的视图中,我选择了一个图像。在我的控制器中,我有一个名为

uploadImage:function(req,res){}

我有一行
req.file('photofile')。上传(……


因此,我现在的问题是..如何将此图像从我的视图传递到我的控制器?以便我可以从
req
读取它?

我假设您有一个绑定到
uploadImage
函数的路由。如果没有,您可以使用
express
创建它:

var app = require('express')();
app.post('/your/upload/route', uploadImage);
如果要从视图上载文件,有两种选择:

  • 使用简单的HTML
    。必须在
    标记中添加以下属性:
    enctype=“multipart/form data”
    !给您:

呃,我应该将require express代码放在哪里?在我的控制器中?我没有express插件。我应该如何编写我的路由?我已经尝试了使用表单的第一个选项。这也正确吗?我在控制器的uploadImage函数中做了一行打印,但它没有打印,所以它没有被调用。我以为你在使用
express
,没问题。如果您想知道什么是
express
,以及它是如何工作的,您可以在使用
npm install--save express
命令安装软件包后进行操作。express是执行此操作的唯一方法?>。不,正如我在帖子中所说的,您可以使用基本的post
并将其提交给控制器。
<form method="post" enctype="multipart/form-data">
    <input type="file" name="photofile" />
    <input type="submit" />
</form>
<form onSubmit="upload()">
    <input id="image" type="file" />
    <input type="submit" />
</form>
function upload() {
    var inputFile = $('#image');
    if (inputFile.files[0]) { // Just checking if the user selected a file.
        var data = new FormData();
        data.append('photofile', inputFile.files[0]); // Add the file in the form data.

        $.ajax({ // Call your route
            url: '/your/upload/route', // The route to call
            data: data, // The FormData
            cache: false,
            contentType: false,
            processData: false,
            type: 'POST',
            success: function (data){
                console.log('Upload success!', data);
            },
            error: function (result, status, error){
                console.log('An error occurred.');
            }
        });
    } else {
        console.log('You didn\'t choose any image');
    }
}