Javascript Express.js如何使用Mongoose模式上载文件(img、音频)
在收到vernak2539的一些建议后,在哪里寻找解决方案。我将express.js用于强大和mongoose的示例如下所示Javascript Express.js如何使用Mongoose模式上载文件(img、音频),javascript,node.js,mongodb,file-upload,express,Javascript,Node.js,Mongodb,File Upload,Express,在收到vernak2539的一些建议后,在哪里寻找解决方案。我将express.js用于强大和mongoose的示例如下所示 var express = require('express'); var router = express.Router(); var post = require('./models'); var formidable = require('formidable'); var util = require('util'); var fs = require('fs
var express = require('express');
var router = express.Router();
var post = require('./models');
var formidable = require('formidable');
var util = require('util');
var fs = require('fs-extra');
router.post('/upload', function (req, res){
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
res.writeHead(200, {'content-type': 'text/plain'});
res.write('received upload:\n\n');
res.end(util.inspect({fields: fields, files: files}));
new post({title:fields.title, content:fields.content,
image:files.image.name}).save(function (e, result) {
console.log('new post saved', result)
});
});
form.on('end', function(fields, files) {
var temp_path = this.openedFiles[0].path;
var file_name = this.openedFiles[0].name;
var new_location = 'uploads/';
fs.copy(temp_path, new_location + file_name, function(err) {
if (err) {
console.error(err);
} else {
console.log("success!")
}
});
});
});
基本上,为了使用文件,我将文件名保存在image字段中,并将静态路径设置为带有更新文件的目录,这样它就可以用作img的src。能否将其存储为base64编码字符串?或者你能保存文件,然后保存路径吗?我正试图做第二件事,所以我做了app.use(bodyParser({uploadDir:'./uploads'})),但是你能解释一下它是如何工作的吗,我应该指定我的post路由,这样它就能保存文件了?好的,bodyParser有选项,但是uploadDir不是一个。签出他们的github页面以获取选项。我会检查这篇文章的第一部分(“app.post”(“/upload'..”部分)。从那里你可以集成你的猫鼬商店。或者感谢你的建议,在哪里寻找解决方案,我解决了问题,我会更新帖子,也许其他人可以使用它