zoukankan      html  css  js  c++  java
  • nodejs学习笔记一( sublime、atom开发环境,http模块,fs模块的初识)

    http服务
     
    let server = http.createServer(function(req,res){
         
    });
     
    监听:
    server.listen(8080);
     
    request       请求
    response     相应
     
    编辑器配置相应的环境
    sublime: 
    依次打开  Tools --> Build System --> new Build System 中文:工具 --> 编译系统 --> 新建编译系统
    输入以下代码,保存配置文件,然后 使用快捷键 Ctrl + b 开启实时node监听
    {
    
        "cmd": ["node", "$file"],
    
        "file_regex": "^[ ]*File "(...*?)", line ([0-9]*)",
    
        "working_dir": "${project_path:${folder}}",
    
        "selector": "source.js",
    
        "shell": true,
    
        "encoding": "utf-8",
    
        "windows": {
    
            "cmd": ["node", "$file"]
    
        }
    
    }
    atom 编辑器
    下载对应插件  script
     
    Ctrl + shift + b  实时监听node指令
     
     
     
    res.write();     向前台输出
    res.end();       结束输出
     
    req.url        请求的url      输出   请求的url + favicon.ico
         facicon.icon   是chrome自己请求的
    <link rel= "shortcut icon" href="">
     
    const http = require('http');
    let server = http.createServer(function(request, response){
         console.log(req.url);
         switch(req.url) {
              case '1.html':
                   res.write('1111');
                   break;
              case '2.html':
                   res.write('2222');
                   break;
              default:
                   res.write('404');
                   break;
         };
         console.log('被请求了');
         // res.write();
         res.end();
    });
    server.listen(9090);
    http--模块
     
    文件操作 : fs模块(系统自带模块)  Files System
         
    客户端  ---- 服务器----磁盘----服务器----客户端
     
    异步 vs 同步
    异步: 多个操作可以同时进行,前一次的操作每完成,后一次的操作也能开始
    异步: 一次一个操作
     
    读文件:
    // fs.readFile(文件名, 回调函数 function(err, data){});     
    fs.readFile();
     
    data读取结果
    <buffer  原始的二进制数据 > 
     
    const fs = require('fs');
    
    fs.readFile('1.txt', function(err, data){
         if(err) {
              console.log('读取失败');
         }else {
              console.log(data.toString());
         }
    });
    写文件
    // fs.writeFile(文件名, 内容, 回调函数 function(err){ });
    fs.writeFile('1.txt', 'jason is a hero!', function(){
         
    });
    const fs = require('fs');
    
    fs.writeFile('1.txt', 'jason is a hero!', function(err){
         console.log(err);
    });
         
    总结:
        注意回调函数是异步函数,注释的res.end();的位置是不对的,fs文件读取结束后才能分析原因并且结束相应,而不应该在回调之前先结束相应再执行fs的回调
     
    // 引入http模块
    const http = require('http');
    // 引入fs模块
    const fs = require('fs');
    
    // 创建一个连接
    let server = http.createServer( (req, res) => {
        // 指定静态资源
        let file_name = './www' + req.url;
        fs.readFile(file_name, (err, data) => {
            if(err) {
                res.write('404');
            } else {
                res.write(data);
            }
            res.end();
        });
        // res.end();
    });
    
    // 监听端口
    server.listen(9888);
  • 相关阅读:
    连载日记
    自我介绍
    test0710 二分专题
    test0709 搜索专题
    test0705
    test0704
    [题解] [HNOI2015]落忆枫音
    test0606
    test0523
    备份
  • 原文地址:https://www.cnblogs.com/jasonwang2y60/p/7056908.html
Copyright © 2011-2022 走看看