Node.js 在node js中完成特定数据库操作后使用multer上传文件
我正在使用multer通过express上传文件。 在上传文件之前,是否有方法执行数据库操作?Node.js 在node js中完成特定数据库操作后使用multer上传文件,node.js,express,multer,Node.js,Express,Multer,我正在使用multer通过express上传文件。 在上传文件之前,是否有方法执行数据库操作? 我需要执行一个有条件的检查,检查用户在数据库中的插入是否成功取决于此,应该执行文件上载。要根据需要使用multer,您可以使用以下代码: var path = require('path'); var multer = require('multer'); var storage = multer.diskStorage({ destination: function(req, file,
我需要执行一个有条件的检查,检查用户在数据库中的插入是否成功取决于此,应该执行文件上载。要根据需要使用
multer
,您可以使用以下代码:
var path = require('path');
var multer = require('multer');
var storage = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, './uploads')
},
filename: function(req, file, callback) {
console.log(file)
callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname))
}
});
destination
用于指定上传文件存储目录的路径
filename
用于确定文件夹中的文件名称。在本例中,我们使用Date.now()的返回值而不是原始名称上载文件,并使用内置的path Node.js库添加原始文件扩展名
path.extname(file.originalname);
app.post('/insertUpload', function(req, res) {
// connection is db connection variable
var username = req.body.username;
var query = connection.query('INSERT INTO users SET ?', username,
function(err, result) {
console.log(result);
if(!err){ // if not error after insert
var upload = multer({
storage: storage
}).single('userFile')
upload(req, res, function(err) {
res.end('File is uploaded')
});
}
});
});
要根据需要使用
multer
,您可以使用以下代码:
var path = require('path');
var multer = require('multer');
var storage = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, './uploads')
},
filename: function(req, file, callback) {
console.log(file)
callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname))
}
});
destination
用于指定上传文件存储目录的路径
filename
用于确定文件夹中的文件名称。在本例中,我们使用Date.now()的返回值而不是原始名称上载文件,并使用内置的path Node.js库添加原始文件扩展名
path.extname(file.originalname);
app.post('/insertUpload', function(req, res) {
// connection is db connection variable
var username = req.body.username;
var query = connection.query('INSERT INTO users SET ?', username,
function(err, result) {
console.log(result);
if(!err){ // if not error after insert
var upload = multer({
storage: storage
}).single('userFile')
upload(req, res, function(err) {
res.end('File is uploaded')
});
}
});
});
在这一行
var query=connection.query('INSERT INTO users SET?',username
我想从req.body
访问username,因为它将来自用户它只是查询将数据插入表中..我相信您会将其替换为您的数据库查询我已经编辑了答案,请检查。现在使用req.body.usernamereq.body在上载之前总是未定义的(req,res,function(err){res.end('File is uploaded')})
req.body未定义可能有各种原因。请在这一行检查此答案var query=connection.query('INSERT INTO users SET?',username
我想从req.body
访问username,因为它将来自用户它只是查询将数据插入表中..我相信您会将其替换为您的数据库查询我已经编辑了答案,请检查。现在使用req.body.usernamereq.body在上载之前总是未定义的(req,res,function(err){res.end('File is upload')})
req.body未定义可能有各种原因。请检查此答案