Node.js基础介绍

一、Node.js是什么

1、是一个JS运行时环境(简单来说就是可以解析、执行js代码):不是一门语言/库/框架,只是一个平台
(1)Node.js中的JavaScript没有BOM、DOM,只有EcmaScript(基本语法),因为服务端不操作页面
(2)在Node这个javascript执行环境中为js提供了一些服务器级别的操作API(文件读写、构建网络服务、网络通信、http服务器等)

(3)Node没有html文件,只有.js文件

2、特性:使用事件驱动、非阻塞IO模型(简单来讲就是异步)、轻量高效

3、大多数与JS相关的包都放在npm上

    例如:有了npm之后,一条命令就可以下在不同的库/框架(比如jquery),不用再到各个库/框架的官网上去下载

node请求静态服务器(最基本的请求)

var http=require('http');
var server=http.createServer();
server.on('request',function () {
    console.log('收到客户请求了')
});
server.listen(3000,function () {
    console.log('服务器启动成功了,可以通过 http://127.0.0.1:3000/ 来进行访问');
});

Node中模块系统

  • 在 Node 中没有全局作用域的概念

  • 在 Node 中,只能通过 require 方法来加载执行多个 JavaScript 脚本文件

  • require 加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题

    • 模块完全是封闭的

    • 外部无法访问内部

    • 内部也无法访问外部

  • 模块作用域固然带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题

  • 但是某些情况下,模块与模块是需要进行通信的

  • 在每个模块中,都提供了一个对象:exports

  • 该对象默认是一个空对象

  • 你要做的就是把需要被外部访问使用的成员手动的挂载到 exports 接口对象中

  • 然后谁来 require 这个模块,谁就可以得到模块内部的 exports 接口对象

  • 还有其它的一些规则,具体后面讲,以及如何在项目中去使用这种编程方式,会通过后面的案例来处理

核心模块

  • 核心模块是由 Node 提供的一个个的具名的模块,它们都有自己特殊的名称标识,例如

    • fs 文件操作模块

    • http 网络服务构建模块

    • os 操作系统信息模块

    • path 路径处理模块

    • 。。。。

  • 所有核心模块在使用的时候都必须手动的先使用 require 方法来加载,然后才可以使用,例如:

    • var fs = require('fs')

http

  • require:加载执行模块中的代码

  • 端口号

    • ip 地址定位计算机

    • 端口号定位具体的应用程序

  • Content-Type

    • 服务器最好把每次响应的数据是什么内容类型都告诉客户端,而且要正确的告诉

    • 不同的资源对应的 Content-Type 是不一样,具体参照:http://tool.oschina.net/commons

    • 对于文本类型的数据,最好都加上编码,目的是为了防止中文解析乱码问题

  • 通过网络发送文件

    • 发送的并不是文件,本质上来讲发送是文件的内容

    • 当浏览器收到服务器响应内容之后,就会根据你的 Content-Type 进行对应的解析处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值