JavaScript:nodejs入门程序

nodejs入门程序

//一、 第一个nodejs程序
console.log("hello world nodejs");

//二、 用nodejs创建web服务
// localhost:8888 可以访问到Hello World
var http = require("http");
var port = 8888;

http.createServer(function (request, response) {
    response.writeHead(200, {
        'Content-Type': 'text/plain'
    });
    // 如果不加end 网页会一直转
    response.end('Hello World\n');
}).listen(port);

//三、同步和异步的问题
var fs = require("fs");
// 1.txt必须存在
var fileName = "1.txt";
var data = fs.readFileSync(fileName);
console.log(data.toString());
console.log("同步方式读取文件完毕");

fs.readFile(fileName, function (err, data) {
    if (err) {
        console.log(err.message);
    } else {
        console.log(data.toString());
    }
});
console.log("异步方式读取文件完毕");

//四、 模块 require 和 exports
// 引入一个模块用require
// 引入这个模块 就相当于执行了一次这个js文件
var helloModule = require("./hello");
// console.log(helloModule); // 是一个json
helloModule.hello("Nick");
console.log(helloModule.add(1, 2));
var person1 = new helloModule.Person("1", "张三");
console.log(person1);
person1.sayHello();


//五、文件系统

// 打开文件
console.log("准备打开文件");
fileName = "1.txt";
fs.open(fileName, "r+", function (err, fd) {
    if (err) {
        console.log(err.message);
    } else {
        console.log("文件打开成功");
    }
});

// 获取文件信息
fs.stat(fileName, function (err, stats) {
    if (err) {
        console.log(err.message);
    } else {
        console.log("读取文件信息成功!");
        console.log("该路径是否是文件:" + stats.isFile());
        console.log("该路径是否是目录:" + stats.isDirectory());
        console.log("该路径是否是块设备:" + stats.isBlockDevice());
        console.log("该路径是否是字符设备:" + stats.isCharacterDevice());
        console.log("该路径是否是Socket:" + stats.isSocket());

    }
});

// 读写文件 写文件如果没有会创建 如果有会覆盖
fs.writeFile("2.txt", "我是要写入的文字", function (err) {
    if (err) {
        console.log(err.message);
    } else {
        console.log("文件写入成功");
        fs.readFile("2.txt", function (err, data) {
            if (err) {
                console.log(err.message);
            } else {
                console.log("文件读取完毕");
                console.log(data.toString());
            }
        });
    }
});

// 打开文件 读取部分文件

fileName = "2.txt";
fs.open(fileName, "r+", function (err, fd) {
    if (err) {
        console.log(err.message);
    } else {
        console.log("文件打开成功");

        // 读文件
        console.log("准备读文件");
        var buf = new Buffer.alloc(1024);
        fs.read(fd, buf, 0, buf.length, 0, function (err, bytes) {
            let wholeData = "";
            if (err) {
                console.log(err);
            }

            // 仅输出读取的字节
            if (bytes > 0) {
                console.log(buf.slice(0, bytes).toString());
            }

        });
    }
});


// 删除文件
fs.unlink('1.txt', function (err) {
    if (err) {
        return console.error(err);
    }
    console.log("文件删除成功!");
});

// hello.js
console.log("我是hello.js模块,我被执行了");
function hello(msg){
    console.log("hello world:" + msg);
}

function add(a,b){
    return a + b;
}
function Person(id,age){
    this.id = id;
    this.age = age;
}
Person.prototype.sayHello = function(){
    console.log("大家好,我是"+this.age + "我的id是"+this.id);
}
module.exports.hello = hello;
module.exports.add = add;
module.exports.Person = Person;

猜你喜欢

转载自blog.csdn.net/tsfx051435adsl/article/details/82859830