• Node.js初探之实现能向前台返回东西的简单服务器


    nodejs

    nodejs文件就是一个简单的js文件。

    在shell中运行

    Step 1. 打开终端,进入这个js文件所在目#录
    Step 2. 用 ‘node 文件名.js’ 命令运行它即可。

    用nodejs写服务器

    后台是一直’被‘浏览器请求

    request/response 输入输出 内容
    请求 输入 请求的东西
    响应 输出 响应的内容

    实例

    用到fs(filesystem),实现一个能够向前台返回东西的简单服务器。

    const http = require('http');
    const fs = require('fs');   //fs模块用于对系统文件及目录进行读写操作
    
    var server = http.createServer(function(req,res){
        var file_name = './www'+req.url;
    
        fs.readFile(file_name,function(err,data){
            if(err){
                res.write("404");
            }else{
                res.write(data);
            }
            res.end();
        });
    
    });
    
    server.listen(8080);
    

    用到了res.write(),res.end(),fs.readFile()。
    需要注意的是,res.end()的位置,如果放在括号外面

    var server = http.createServer(function(req,res){
        var file_name = './www'+req.url;
    
        fs.readFile(file_name,function(err,data){
            if(err){
                res.write("404");
            }else{
                res.write(data);
            }
        });
        
        res.end();  //放在括号外面,运行时会导致错误
    });
    
    

    会发生错误的原因是,Node.js支持异步操作(可以同时执行多个任务)。

    上面的代码一共两个任务:一个是fs.readFile()读取文件,另一个是res.end()。读取文件的速度慢,还没读取完另一边res.end()就已经执行了(默认服务器端没有数据返回到客户端)。等fs.readFile()完事后回过头一看,天了噜,另一个哥们居然已经跑路了,而且自己也进不去做任务的房间了。
    这一点需要注意。所以最后我们把res.end()放在readFile()函数内。

  • 相关阅读:
    dd的用法
    od的用法
    Windows 7安装Oracle 10g的方法
    Ubuntu下的iptux和Windows下的飞秋互传文件
    c++ 12
    c++ 11
    c++ 10
    c++ 09
    c++ 08
    c++ 07
  • 原文地址:https://www.cnblogs.com/n2meetu/p/7797391.html
Copyright © 2020-2023  润新知