nodejs--(1)

来源:互联网 发布:led蓝光危害 知乎 编辑:程序博客网 时间:2024/06/07 01:36

Node.js 就是运行在服务端的 JavaScript;Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
使用 Node.js 时,我们不仅仅 在实现一个应用,同时还实现了整个 HTTP 服务器。
让我们先了解下 Node.js 应用是由哪几部分组成的:

  1. 引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
  2. 创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。 接收请求与响应请求
  3. 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
    壳层(英语:Shell)在计算机科学中,是指“提供用户使用界面”的软件,通常指的是命令行界面的解析器。
    本机默认IP HostName localhost 127.0.0.1 联网后公网分配IP来进行网络通信。
    npm模块安装
有时候方便版本协调,安装指定版本npm install mysql@4.0.0mkdir FirstWeb   #新建项目cd FirstWebnpm init   #一系列项目信息npm install mysql   #安装npm install express -g   # 全局安装npm list express启动mysql,创建数据库create database blog;

语言转换
res.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});
会正确使用当前系统的路径分隔符,Unix系统是”/”,Windows系统是”\”

node的安装分为全局模式和本地模式
一般情况下会以本地模式运行,包会被安装到和你的应用程序代码的本地node_modules目录下。
在全局模式下,Node包会被安装到Node的安装目录下的node_modules下。

npm常用命令

1npm root:查看当前包的安装路径npm root -g:查看全局的包的安装路径

错误集锦
1. throw arguments[1]; // Unhandled ‘error’ event
^
Error: listen EADDRINUSE

   我查过了,这个错误EADDRINUSE就是“error.address in use”,意思就是我们监听的端口已经被使用了,所以我们只要换一个监听的端口就行
  1. 回调函数
    阻塞是按顺序执行的,而非阻塞是不需要按顺序的,所以如果需要处理回调函数的参数,我们就需要写在回调函数内

  2. 事件
    引入模块、创建对象、创建处理程序、绑定事件处理程序、触发事件

  3. buffer缓冲区
    处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据。

  4. Stream流
    文件数据的读入和读出;链式流、管道流对文件的压缩和解压。

  5. 创建模块
    代码 require(‘./hello’) 引入了当前目录下的hello.js文件(./ 为当前目录,node.js默认后缀为js)。
    Node.js 提供了exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。
    Node.js中自带了一个叫做”http”的模块,我们在我们的代码中请求它并把返回值赋给一个本地变量。

  6. 路由
    为路由提供请求的URL和其他需要的GET及POST参数,需要的所有数据都会包含在request对象中,该对象作为onRequest()回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的Node.JS模块,它们分别是url和querystring模块。
    扩展一下服务器的start()函数,以便将路由函数作为参数传递过去

  7. 全局对象
    在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。

  8. until工具
    Sub 仅仅继承了Base 在原型中定义的函数,而构造函数内部创造的 base 属 性和 sayHello 函数都没有被 Sub 继承。

  9. 文件操作
    fs模块
  10. GET/POST请求
    由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分。node.js 中 url 模块中的 parse 函数提供了解析后面的内容作为GET请求的参数。

  11. web模块
    目前最主流的三个Web服务器是Apache、Nginx、IIS。
    Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。
    web服务器:解析parse、读取响应、控制台输出
    web客户端:请求、处理响应

  12. Express
    Express 可以快速地搭建一个完整功能的网站。
    Express 框架核心特性:
    1,可以设置中间件来响应 HTTP 请求。
    2,定义了路由表用于执行不同的 HTTP 请求动作。

  13. REST即表述性状态传递
    基于 REST 架构的 Web Services 即是 RESTful,具有轻量级以及通过 HTTP 直接传输数据的特性,可以使用各种语言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])实现客户端。
    1.创建一个 json 数据资源文件
    2.创建RESTful API
    3.对信息列表的读取/增删/显示

  14. 多进程
    Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能。每个子进程总是带有三个流对象:child.stdin, child.stdout 和child.stderr。他们可能会共享父进程的 stdio 流,或者也可以是独立的被导流的流对象。
    Node 提供了 child_process 模块来创建子进程

  15. mysql
    把*.sql文件导入mysq,

先打开cmd再进入mysql的bin目录:cd D:\soft\wamp\bin\mysql\mysql5.0.51b\bin 回车mysql -u 用户名 -p 密码 回车source d:\abc.sql (指向你自己的目录)回车