TypeError [ERR_INVALID_CALLBACK]中理解中的问题:回调必须是节点中的函数

时间:2019-01-23 07:21:41

标签: node.js

我是Node的新手,在理解为什么发生此错误TypeError [ERR_INVALID_CALLBACK]: Callback must be a function时遇到问题 通过运行命令node file-create-directory.js

file-create-directory.js文件是:

const fs = require('fs');
if(!fs.exists('views')){
  fs.mkdir('views',(err) =>{
    if(err) return err;
    fs.writeFile('./views/new.html','this is a new directory and data', (err) =>{
       if(err) return err;
        console.log('Directory and file saved');
    });
  });    
}

1 个答案:

答案 0 :(得分:2)

首先弃用fs.exists

const fs = require('fs');
fs.access('views', fs.constants.F_OK, (err) => {
  // if it does not exists
  if(err) {
     fs.mkdir('views', (err) => {
       if(!err) { 
         fs.writeFile('./views/new.html', 'this is a new directory and data', 
         (err) => {
           if(err) return err;
           console.log('Directory and file saved');
         }
     });
  }
});    

但是,如果您决定使用fs.exists,请使用此

fs.exists('views', (exists) => {
  if(!exists) {
     fs.mkdir('views',(err) => {
       if(err) return err;
       fs.writeFile('./views/new.html','this is a new directory and 
       data', (err) => {
         if(err) return err;
         console.log('Directory and file saved');
       });
     });  
  }
});