我一直在我的节点代码中收到此错误。 DeprecationWarning:不建议在不回调的情况下调用异步函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我一直在我的节点代码中收到此错误。 DeprecationWarning:不建议在不回调的情况下调用异步函数相关的知识,希望对你有一定的参考价值。

我想在node.js中创建一个小服务器。不幸的是它一直给我这个错误。

(node:8412) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.
    fs.js:113
          throw err;  // Forgot a callback but don't know where? Use NODE_DEBUG=fs

基本上,我只是导入所有必需的模块。然后我继续解析请求以检查请求中的文件名是文件或目录还是服务器上不可用的内容。这是我的代码:

//include the module http,url,path,fs
const http=require('http');
const url=require('url');
const path=require('path');
const fs=require('fs');

//define the mime types that we would be using  
const mimeTypes={
    "html":"text/html",
    "jpeg":"image/jpeg",
    "jpg":"image/jpg",
    "png":"image/png",
    "js":"text/javascript",
    "css":"text/css"
};

//define the host name to local machine IP 
const hostname='127.0.0.1';

//define the port on which over server would be runnning 
const port = 3000;

//lets create the server  
const server= http.createServer(function(req,resp){
    //get the path name 
    var uri=url.parse(req.url).pathname;
    // get eh file name 
    var filename =path.join(process.cwd(),unescape(uri));
    console.log('loading'+ uri);
    var stats;
    // cehck to see if the file name is actually a file directory or non existant  stuff 
    try{
        stats=fs.lstat(filename);
        if(stats.isFile()){
            var mimeType=mimeType[path.extname(filename).split(".").reverse()[0]];
            resp.writeHead(200,{'Content-Type':mimeType});
            var fileStream = fs.createReadStream(filename);
            fileStream.pipe(resp);
            resp.end(); 
        } else if(stats.isDirectory()){
            resp.writeHead(302,{
                'Location':'index.html'
            });
            resp.end();    
        }
        else{
            resp.writeHead(500,{'Content-Type':'text/plain'});
            resp.write('500 Internal server error 
');
            resp.end();
        }


    }catch(e)
    {
        resp.writeHead(404,{'Content-type':'text/plain'});
        resp.write('404 Not Found 
');
        resp.end();
        return;
    }


}).listen(3000);

//lets create a listner to make sure that the port is running  when the code is called 
server.listen(port,hostname,()=>{
    console.log(`Server running at http://${hostname}:${port}/`);
});
答案

fs.lstat是一个异步调用,您可以添加回调或使用同步版本的调用; fs.lstatSync

https://nodejs.org/api/fs.html#fs_fs_lstat_path_options_callback

以上是关于我一直在我的节点代码中收到此错误。 DeprecationWarning:不建议在不回调的情况下调用异步函数的主要内容,如果未能解决你的问题,请参考以下文章

我部署了我的项目,我收到此错误 Input file contains unsupported image format

每次我尝试在我的 android 设备中运行代码时都会收到此错误。我是应用程序开发的初学者。我正在使用 VScode

为啥我在我的 Django 项目中不断收到此“名称‘模型’未定义”错误?

为啥我在 facenet 中收到此错误?

当我尝试在我的终端上运行代码时,我不断收到“ModuleNotFound”错误,即使我安装了它

为啥在我的反应形式中此 FormArray 更改后,我从 JSON 文件中检索对象时收到此错误消息?