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);