【发布时间】:2016-10-20 07:01:30
【问题描述】:
我遵循了一个关于如何使用 multer 在 node js 中上传文件的教程,并且不久前才开始学习 node js 和 express js,所以我是这方面的初学者。作为教程的结果,当我在我的 index.ejs 中单击提交以上传图像/音乐文件时,我可以在我的终端中看到该文件已上传详细信息,并且当我检查我的 ./public/uploads文件夹,里面也放了一个文件。
我现在想知道的是,如何获取这些数据并将其放入我的 mongo 数据库中,以及如何在我的 index.ejs 中查看这些图像或播放这些音乐文件?我还没有设置猫鼬,但我会的。到目前为止我的代码:
我的 app.js
var express = require('express'); //to require express.js
var multer = require('multer'), //to require multer for uploading photos
bodyParser = require('body-parser'), //to require body-parser to grab json form data
path = require('path');
var upload = multer({ dest: 'public/uploads/' }) //giving upload a destination directory
var app = express(); //to use express
app.use(bodyParser.json());
app.set('views', path.join(__dirname, 'views'));
app.use(express.static(__dirname + '/public')); //to use style.css
app.set('view engine', 'ejs'); //to use ejs as template language
// app.use(bodyParser.urlencoded({ extended: false })); //to use body parser
app.get('/', function(req, res){ //using express for routing and printing out content
res.render('index'); //render it in html. In ejs, display what we want to display
})
app.post('/', multer({ dest: './public/uploads/'}).single('upl'), function(req,res){
console.log(req.body); //form fields
console.log(req.file); //form files
res.status(204).end();
});
app.listen(3000,function(){ //using express to load the server
console.log('Pulse on port 3000!');
})
索引.ejs
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Pulse</title>
</head>
<body>
<h1> Hi </h1>
<form action="/" enctype="multipart/form-data" method="post">
<input type="text" name="title">
<input type="file" name="upload">
<input type="submit" value="Upload">
</form>
</body>
</html>
【问题讨论】:
-
将来可能对某人有所帮助。这是使用multer教程上传nodejs mongdb文件的教程:programmerblog.net/nodejs-file-upload-tutorial
标签: javascript node.js mongodb express mongoose