从vernak2539的一些建议后,在哪里寻求解决方案。我使用带有强大和猫鼬的express.js的例子看起来像这样
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!")
}
});
});
});
所以基本上使用文件,我在图像字段中保存文件的名称,并使用更新的文件设置目录的静态路径,因此它可以用作src来img。