首页 > 解决方案 > 使用 postman 上传图片到 nodejs 后端服务

问题描述

我是 nodejs 的新手,在测试从计算机上传图像的 post 方法期间,我在邮递员中收到这条消息,表明我的上传方法不存在在此处输入图像描述

我的 server.js 代码是

const express = require('express');
const multer = require('multer');
const app = express();

//moddleware
app.use(express.urlencoded({extended: true}));
app.use(multer.json(''));

const PORT = process.env.PORT | 5000;   

var Storage = multer.diskStorage({
    destination: (req, file, callback) => {
        callback(null,"/images");
    },
    filename: (req, file, callback) => {
        callback(null,file.fieldname);
    }
});

var upload = multer({
    storage: Storage
    }).array('image',3);
//route
app.post('/', (req, res) => {});

app.post('/upload', (req, res) => {
    upload(req, res , err => {
        if (err) {
            return res.send('somthing went wrong');
        }
        return.res.send('file uploaded successfully');
    });
});

app.listen(PORT, () => {
console.log('Server running on PORT ${PORT}')
});

这是我的服务器响应

 [nodemon] 2.0.7                                                    
    [nodemon] to restart at any time, enter `rs`                       
    [nodemon] watching path(s): *.*                                    
    [nodemon] watching extensions: js,mjs,json                         
    [nodemon] starting `node server.js`                                
    Server running on PORT ${PORT}

谢谢你

标签: javascriptnode.jsangularpostman

解决方案


您的代码在导致问题的上传路由 return.res.send 中有一些错误。进行如下更改。

const express = require('express')
const bodyParser= require('body-parser')
const multer = require('multer');
const app = express();
app.use(bodyParser.urlencoded({extended: true}))

const PORT = process.env.PORT | 5000;   

var Storage = multer.diskStorage({
    destination: function (req, file, cb) {
      cb(null, 'images')
    },
    filename: function (req, file, cb) {
      cb(null, file.fieldname + '-' + Date.now())
    }
})
var upload = multer({ storage: Storage }).array('image', 12)

//route
app.post('/', (req, res) => {});

app.post('/upload', (req, res) => {
    upload(req, res , err => {
        if (err) {
            res.send('somthing went wrong');
        }
        res.send('file uploaded successfully');
    });
});

app.listen(PORT, () => {
    console.log('Server running on PORT ${PORT}')
});

推荐阅读