javascript - 如何在 Node.js 中上传图片

标签 javascript node.js

我是 Node.js 的新手。我只是想学习使用 ajax 上传和显示图像,就像我在 php 中所做的那样。我发现大多数教程对我来说都很困难。为了开始使用,我尝试使用此代码

var express = require("express");
var app = express()
var bodyParser = require('body-parser')


//all environment
app.use(bodyParser())



var form = "<!DOCTYPE HTML><html><body>" +
"<form method='post' action='/upload' enctype='multipart/form-data'>" +
"<input type='file' name='image'/>" +
"<input type='submit' /></form>" +
"</body></html>";

app.get('/', function (req, res){
    res.writeHead(200, {'Content-Type': 'text/html' });
    res.end(form);

});
/// Post files
app.post('/upload', function(req, res) {
    console.log('Hello world');
       console.log(req.files);
});


app.listen(8080)

但是 req.files 未定义。有人能告诉我为什么吗?如果这是一个愚蠢的问题,请原谅我。并且还可以帮助提供一些资源。提前谢谢您。

最佳答案

req.files 适用于 Express v3,您正在使用 v4。

现在 body-parser 只处理 urlencoded 和 json 正文。 对于多部分主体,您应该使用替代方案。

https://github.com/expressjs/body-parser

例如,使用 multer:

var express = require('express')
var multer  = require('multer')

var app = express()
app.use(multer({ dest: './uploads/'}))

/// Post files
app.post('/upload', function(req, res) {
    console.log('Hello world');
    console.log(req.files);
});

app.listen(8080)

关于javascript - 如何在 Node.js 中上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23971962/

相关文章:

javascript - 将参数添加到 jQuery ajax 调用,最好添加到 URL 或对象?

node.js - 如何从 Firebase Firestore 第二代 onDocumentData 触发器获取经过身份验证的用户?

javascript - 为什么 puppeteer 给我发回手机截图?

javascript - D3.js:连接 json 和 csv 不起作用

javascript - 如何用 jest 模拟和测试链式函数?

javascript - Angular 表单自定义验证器 null 返回不从表单中删除错误

javascript - Object.fromEntries 仅在 iOS 上可用? ( react native - 不是网络)

node.js - 使用 "node"初始化脚本不起作用,而 "nodejs"可以

c++ - Node JS - 模块没有自行注册

node.js - 使用 node.js "request"模块的响应编码