您的位置:首页 > Web前端 > Node.js

Node.js (一)—— 概念、环境安装、读取文件、模块系统(require)、使用http创建简单的服务器、ip地址和端口号概念

2020-04-22 16:50 801 查看

Node.js (一)—— 概念、环境安装、读取文件、模块系统(require)、使用http创建简单的服务器、ip地址和端口号概念

  • 概念:Node是一个JavaScript的运行环境(平台),不是一门语言,也不是JavaScript的框架(Node.js 有庞大的模块库,使用它也就是使用它的模块库)
    浏览器中的javascript
  • node中的javascript
  • 安装: Node.js 和 npm
      node.js中文网下载合适的安装包
    • 安装的过程十分简单,只需要一直点 next 就行。安装 node.js 的同时会自 带 npm (node package manager)
    • 安装完成后,使用命令行工具输入 node -v 和 npm -v,如果能显示出版本号,就说明安装成功。
    • 然后输入 node 进入环境,就可以运行 JavaScript 语句了
    • 按两次 Ctrl+C 就能退出 Node.js 环境
  • 证明node没有bom和dom:
  • 在一个`没有bom和dom.js`的文件里面输入:在窗口里面执行node 没有bom和dom.js.js 回车,会报错误警告
    console.log(window)
    console.log(document)
    [/code]

    • node读取文件和写入文件:
      读取文件:


    • 写入文件
    • 使用http创建简单的服务器
    简单一个小案例:
    // var fs = require('fs')  //fs是返回值,fs里面包含所有的fs的方法
    // 使用Content-Type解决乱码问题
    //1.加载http核心模块
    var http = require('http');
    //2.使用http.createServer()方法创建一个web服务器
    var server = http.createServer();
    //3. 服务器提供对数据的服务
    //发请求
    //接收请求
    //处理请求
    //发送响应
    //注册request请求事件
    //当客户端请求过来,就会自动触发服务器的request请求事件,然后执行第二个参数,回调函数
    server.on('request' , function(request,response){
    //request.url发送请求的url地址
    console.log('收到客户端的请求了,请求路径是:'+ request.url)
    //发送响应
    //request请求事件处理函数,需要接收两个参数
    //Request(自定义名称) 请求对象:获取客户端的一些请求信息,例如请求路径
    //Response (自定义名称)响应对象:用来给客户端响应消息
    //Response有一个方法:write,用来给客户端发送响应数据
    //write可以使用多次,最后要用end来结束响应,否则客户端会一直等待。
    //但是多次write的方式比较麻烦,推荐使用更简单的方式,直接end的同时发送响应数据
    //  response.write('hello');
    //  response.write('node.js');
    //  如果是中文会出现乱码,原因:在服务器默认发送的数据是utf8编码的内容
    //  但是浏览器不知道你是utf8编码的内容,浏览器默认是gbk编码,所以出现了乱码
    //  解决方法:正确的告诉浏览器我发送的是utf8的编码
    //  res.setHeader('Content-Type','text/plain;charset=utf-8') //响应内容类型
    //  text/plain是普通文本,text/html是html
    //response.write('我是服务端返回给客户端的响应')
    //  //告诉客户端已响应了,呈递给用户了
    //  response.end();
    // response.end('hello') //推荐这种写法,这个hello是响应给客户端的数据,是后端返回的数据
    //根据不同的请求路径发送不同的响应
    //1.获取请求路径
    //request.url获取到的是端口号之后的那一部分路径,都是以/开头的
    //2. 判断路径处理响应
    var url = request.url
    if(url ==='/'){
    response.end('index page')
    }else if(url ==='/login'){
    response.end('login page')
    }else if(url ==='/html'){
    //  如果是中文会出现乱码,原因:在服务器默认发送的数据是utf8编码的内容
    //  但是浏览器不知道你是utf8编码的内容,浏览器默认是gbk编码,所以出现了乱码
    //  解决方法:正确的告诉浏览器我发送的是utf8的编码
    //  res.setHeader('Content-Type','text/plain;charset=utf-8') //响应内容类型
    //  text/plain是普通文本,text/html是html
    //图片不需要指定编码,一般只有字符数据才指定编码
    response.setHeader('Content-Type','text/html;charset=utf-8')
    response.end('<p>hello  html <a href="">点我</a></p>')
    }
    else if(url ==='/products'){
    var products = [
    {
    name:'iphonex',
    price:8888
    },
    {
    name:'iphone7',
    price:6666
    },
    {
    name:'iphone6',
    price:5555
    }
    ]  //这些东西就是服务器要返回给前端的
    //响应的内容只能是字符串或者二进制数据
    //JSON.stringify 转字符串
    console.log(typeof JSON.stringify(products))  //类型是string
    response.end(JSON.stringify(products))
    }
    else{
    response.end('404  not found')
    }
    //默认以/结尾 控制台的network中的请求地址是Request URL:http://127.0.0.1:3000/
    });
    //4.绑定端口号,启动服务器
    //127.0.0.1是本机的回环IP地址,一般用于测试
    //localhost属于127.0.0.1的别名
    server.listen(3000, function(){
    console.log('服务器启动成功了,可以通过127.0.0.1:3000来进行访问')
    })
    [/code]


    • 核心模块,模块系统

    • ip地址和端口号概念

    • 总结:


    • 点赞
    • 收藏
    • 分享
    • 文章举报
    xiaokanfuchen86 发布了11 篇原创文章 · 获赞 1 · 访问量 1234 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: