【问题标题】:(node:7016) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated(节点:7016)[DEP0013] DeprecationWarning:不推荐调用没有回调的异步函数
【发布时间】:2018-04-11 02:02:29
【问题描述】:

我想将文件从 ajax 上传到 node.js.code 工作正常。但它显示 deprecated.like

(node:7016) [DEP0013] DeprecationWarning: 不推荐调用不带回调的异步函数

nodejs代码有什么问题。谁能解决这个问题?谢谢

var express = require('express');
var app = express();
var path = require('path');
var formidable = require('formidable');
var fs = require('fs');

app.use(express.static(path.join(__dirname, 'public')));

app.get('/', function(req, res){
  res.sendFile(path.join(__dirname, 'views/index.html'));
});

app.post('/upload', function(req, res){

  console.log("get");
 
  var form = new formidable.IncomingForm();

  form.multiples = true;

  form.uploadDir = path.join(__dirname, '/uploads');

 
  form.on('file', function(field, file) {
    fs.rename(file.path, path.join(form.uploadDir, file.name));
  });


  form.on('error', function(err) {
    console.log('An error has occured: \n' + err);
  });

 
  form.on('end', function() {
    res.end('success');
  });

 
  form.parse(req);

});

var server = app.listen(8086, function(){
  console.log('Server listening on port 3000');
});

【问题讨论】:

    标签: node.js ajax


    【解决方案1】:

    fs 异步函数现在需要回调。您可以通过更新此行来修复您的代码:

    fs.rename(file.path, path.join(form.uploadDir, file.name));

    通过这个: fs.rename(file.path, path.join(form.uploadDir, file.name),(error) => { /* 处理错误 */ }))

    您也可以查看以下文档。 见https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback

    【讨论】:

      【解决方案2】:

      fs.rename() 是异步的,并且在重命名完成时会调用一个回调。 Node 会警告您,因为您忽略了这一点,这通常是一个错误。

      您可能至少应该检查错误,这应该会使警告消失:

      form.on('file', function(field, file) {
          fs.rename(file.path, path.join(form.uploadDir, file.name), function(err){
              console.log("Error renaming file:", err );
           }
      });
      

      更多:https://nodejs.org/api/fs.html

      【讨论】:

        猜你喜欢
        • 2018-01-09
        • 2023-04-10
        • 2017-08-27
        • 2015-09-08
        • 2017-05-02
        • 1970-01-01
        • 2018-03-27
        • 2019-05-09
        • 2019-07-06
        相关资源
        最近更新 更多