【发布时间】:2018-03-15 09:37:18
【问题描述】:
我想从我的 NodeJS api 上传一张图片到 cloudinary,我有我的模型,在这个模型中我有一个名为 image 的字段,这个字段是字符串类型,在这里我想保存作为响应接收的 url乌云密布。
这是我的 model.js
'use strict';
const mongoose = require('mongoose');
const CursoSchema = mongoose.Schema({
name: {
type: String,
required: true
},
image: {
type: String,
},
description: {
type: String,
required: true
}
});
module.exports = mongoose.model('Curso', CursoSchema);
还有我的controller.js,这里是我要保存url的地方,我用cloudinary docs的方法试过了。
var imageFile = req.files.image;
cloudinary.uploader.upload(imageFile.path, function(result){
if (result.url) { res.status(200).send({url: result.url});
}else {
console.log('Error uploading to cloudinary');
}
});
但我刚刚上传了图片。这是我的controller.js
'use strict';
const Curso = require('../models/curso');
const config = require('../config');
const cloudinary = require('cloudinary');
cloudinary.config({
cloud_name: 'something',
api_key: 'somthingelse',
api_secret: 'andotherthing'
})
function saveCurso(req, res) {
let curso = new Curso();
let params = req.body;
curso.name = params.name;
curso.description = params.description;
//How to get the image and upload it to cloudinary
curso.save((err, cursoSaved)=>{
if(err){return res.status(500).send({message:'Error'});}
if(!cursoSaved) return res.status(404).send({message: 'Empty'});
return res.status(200).send({curso: cursoSaved});
});
}
module.exports = {
saveCurso,
}
还有我的 routes.js 文件:
'use strict';
const express = require('express');
const api = express.Router();
const cursoController = require('../controllers/curso');
api.post('/curso', cursoController.saveCurso);
module.exports = api;
我想保存带有名称、描述和图像的数据,我想保存来自 cloudinary 的 url。
我在 cloudinary 中保存了一些图像,但我找不到在我的图像字段中仅保存 url 的方法
注意:我正在使用 body-parser,这是我的 app.js
'use strict';
const bodyParser = require('body-parser');
const express = require('express');
const app = express();
const curso_routes = require('./routes/curso');
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.use('/api', curso_routes);
module.exports = app;
【问题讨论】:
标签: javascript node.js cloudinary