Node.js基础(一)

Node.js 是什么?

  • JavaScript 运行时, 运行环境
  • 既不是语言,也不是框架,它是一个平台
  • 简单来讲,node.js可以解析和执行js代码

Node.js与JavaScript的关系

  1. node.js中没有BOM、DOM
  2. 只有EcmaScript 基本的 JavaScript
    语言部分,如变量、方法、数据类型、及内置对象 Array Object Date Math
  3. 在 Node中为JavaScript 提供了一些服务器级别的 API,如文件操作的能力,http 服务的能力。

node中 模快分三种

  1. 具名的文件模块(也叫核心模块)
    例如:文件操作的叫做fs模块
    http服务构建的就叫http模块
    path路径叫做路径模块
    os操作系统信息叫做获取信息模块

  2. 自定义文件模块

  3. 通过npm现在的第三方模块,例如bootstrap

加载模块

1.都是通过require('文件名')方法来加载这些模块

    var fs=require('fs');//1.1 加载核心模块
    var template=require('art-template');//1.2 加载第三方包模块,所有第三方包都是通过npm下载
    var b=require('./b.js');//1.3 加载自己的文件模块

2.关于模块加载顺序

①. 优先加载已缓存下来的文件
②. 核心模块
③. 路径形式的文件模块
④. 第三方包模块 node_modules中查找 找不到会跳到上一级目录查找node_modules,依次直到磁盘根目录,还找不到就报错,一个项目有且只有一个node_modules,都会放到当前目录的根目录

3.关于加载文件模块需要注意的

①. ./ 不能省略
②. 加载文件模块时,后缀名是可以省略的
③. 不存在第三方模块名与核心模块名一致

核心模块

1.fs

// 1.使用require()加载fs核心模块,即文件操作模块
var fs=require('fs');

读文件

// 2.读取文件readFile('绝对路径',回调函数)
fs.readFile('./data/hello.txt',function(error,data){
    // 如果读取失败,error是错误对象 data是undefined
    // 如果读取成功,error是null data是数据
    console.log(error,data);//null <Buffer e4 bb 8a e5 a9 e5 a4 a9 e6 b0 e4 b8 8d e9 94 99>
    // data被解析成二进制,之后被转为十六进制数据
    // 可以通过toString()转为字符串
    if(error) return console.log('文件读取失败');
    console.log(data.toString());
})

写文件

// 写文件writeFile(path: string | number | Buffer | URL, data: any, callback)
fs.writeFile('./data1/hello1.txt','我是通过node.js写入的',function(err){
    // 如果写入成功err为null  而当前文件中之前的内容会被删除,只留下写入得内容
    // 如果当前路径下没有这个文件会创建一个相应的文件,但不会创建文件夹,其中文件名不能使用特殊字符
    console.log(err);
})

2.http

端口

  • 端口的作用:通过端口来区分出同一电脑内不同应用或者进程,从而实现一条物理网线(通过分组交换技术-比如internet)同时链接多个程序
    Port_(computer_networking)
  • 端口号是一个 16位的 uint, 所以其范围为 1 to 65535 (对TCP来说, port 0 被保留,不能被使用.
    对于UDP来说, source端的端口号是可选的, 为0时表示无端口).
  • app.listen(3000),进程就被打标,电脑接收到的3000端口的网络消息就会被发送给我们启动的这个进程
//1.加载相关模块
var http = require('http');

//2.创建server服务器
var server = http.createServer();

//3.监听request事件
server.on('request',function(req,resp){
        resp.end('hello node.js');
});
//4.第一个参数绑定端口号,第二个参数是一个回调函数,会在 listen 动作成功后执行,我们这里执行了一个命令行输出操作,告诉我们监听动作已完成
server.listen(3000, function () {
    console.log('run.')
});

其中可以通过设置Content-Type,来解决解决中文乱码

rep.setHeader('Content-Type','text/html;charset=utf-8');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值