Node(一)

Node(一)

(一)安装node

1、Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/。
2、检查是否安装成功

在这里插入图片描述

(二)简单使用node

创建文件01-helloworld.js

var foo = 'bar dfd'
console.log(foo)

在终端处运行

node 01-helloworld.js

结果:
在这里插入图片描述

(三)node中fs模块

fs模块用于对系统文件及目录进行读写操作。

1、先引入fs核心模块
var fs = require('fs');
2、读取文件

readFile:

  • 第一个参数是文件路径
  • 第二个路径是回调函数
fs.readFile('../text.txt',function(error,data){
    // console.log(data);  //输出16进制
    if(error) {
        console.log("失败");
    }else{
        console.log(data.toString())
    }
})

在终端处运行

node 02-file.js

结果:在这里插入图片描述

3、写入文件

writeFile:

  • 第一个参数:文件路径
  • 第二个参数:文件内容
  • 第三个参数:回调函数 参数(error)
fs.writeFile('../text2.txt','h哈哈哈哈gdksjasdgh',function(error){
    if(error) {
        console.log("失败");
    }else{
        console.log("成功");
    }
})

在终端处运行

node 03-writefile.js 

结果:
在这里插入图片描述
此时在你写文件的目录下多了一个叫text2.txt
在这里插入图片描述

(三)node中http模块

http模块可以用来构建服务器

1、引入htpp模块
var http = require('http');
2、创建web服务器
var server = http.createServer()
3、发送请求
  • 当客户端请求过来,触发request请求事件
  • 两个参数:
    • request:请求对象可以用来获取客户端的一些请求信息,例如请求路径;
    • response:响应对象可以用来给客户端发消息
server.on('request', function (request, response) {
    //response中的write可以给客户端发送响应数据(只能是字符串和二进制),可以使用多次,最后一定用end结束响应
    response.write('hello');
    response.write('hhhhh');
    response.end()
    // response.end('dsfds  hello')
})
4、根据不同的路径发送不同的内容
server.on('request', function (request, response) {
    var url = request.url;
    if (url === '/') {
        var products = [{
            name: 'df',
            age: 13
        }, {
            name: 'ds',
            age: 14,
        }, {
            name: 'asd',
            age: 15
        }];
        response.end(JSON.stringify(products));

        //请求我的客户端的地址
        console.log(request.socket.remoteAddress, request.socket.remotePort);
    } else if (url === '/login') {
        response.end('login')
    } else if (url === '/chinese') {
        //解析中文
        //在http协议中 Content-Type就是用来告知对方我给你发送的数据内容是什么类型
        response.setHeader('Content-Type', 'text/plain; charset=utf-8')
        response.end('火火恍恍惚惚哈哈哈')
    } else if(url === '/html'){
        //html格式文本
        response.setHeader('Content-Type', 'text/html; charset=utf-8')
        response.end('<h2>你好啊<a href="">点我</a></h2>')
    }
     else {
        response.end('404')
    }
})
5、绑定端口号,启动服务器
server.listen(3000, function () {
    console.log("服务器启动成功");
});

http和fs结合使用

1、引入模块
var http = require('http');
var fs = require('fs')
2、创建web服务器,并返回实例
var server = http.createServer()
3、发送请求
server.on('request', function (req, res) {
    var url = req.url;
    //引入html文件
    if (url === '/') {
        fs.readFile('../resource/index.html', function (err, data) {
            if (err) {
                res.setHeader('Content-Type', 'text/plain; charset=utf-8')
                res.end('文件读取失败')
            } else {
                res.setHeader('Content-Type', 'text/html; charset=utf-8')
                res.end(data)
            }
        })
    }
    //引入图片
     else if (url === '/img') {   
        fs.readFile('../resource/u=1967481700,3410819518&fm=26&gp=0.jpg', function (err, data) {
            if (err) {
                res.setHeader('Content-Type', 'text/plain; charset=utf-8')
                res.end('文件读取失败')
            } else {
                res.setHeader('Content-Type', 'image/jpeg')
                res.end(data)  
            }
        })
    }
})
4、绑定端口号,启动服务器
server.listen(3000, function () {
    console.log("服务器启动成功");
});

结果:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值