我正在尝试向我的网站添加删除图像功能,即使我的代码从图像文件夹中删除文件并从数据库中删除图像记录,我在控制台中收到错误,但我没有得到重定向到我的主页。错误是:
DeprecationWarning: Calling an asynchronous function without callback is deprecated.
我的代码:
var express = require('express');
var router = express.Router();
var db = require('../helpers/db');
var fs = require('fs');
router.post('/', function(req, res, next) {
if (req.method == 'POST') {
var id = req.body.id;
var path = req.body.path;
var author = req.body.author;
var completePath = 'public/images/uploads/' + path;
db.query('DELETE FROM image WHERE id = ?', [id], function(error, results, fields) {
if (error) throw error;
if (fs.unlink(completePath)) {
console.log('Successful');
res.redirect('/');
} else {
console.log('Unsuccessful');
}
})
}
});
module.exports = router;
我的控制台记录不成功,并且没有将我重定向到 res.redirect('/');
最佳答案
fs.unlink
是一个异步函数,成功时会回调。你应该像这样使用它:
db.query('DELETE FROM image WHERE id = ?', [id], function(error, results, fields) {
if (error) throw error;
fs.unlink(completePath,function(err) {
if(err) {
console.log('unsuccessful');
return;
}
console.log('successful');
res.redirect('/');
});
})
关于javascript - 我的代码正在删除该文件并将其从数据库记录中删除,但是,我在控制台中收到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47204233/