Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express.js如何使用Mongoose模式上载文件(img、音频)_Javascript_Node.js_Mongodb_File Upload_Express - Fatal编程技术网

Javascript Express.js如何使用Mongoose模式上载文件(img、音频)

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

在收到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-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'..”部分)。从那里你可以集成你的猫鼬商店。或者感谢你的建议,在哪里寻找解决方案,我解决了问题,我会更新帖子,也许其他人可以使用它