Node.js简介

  • Node.js是一个能够在服务器端运行JavaScript的开源代码、跨平台JavaScript运行环境
  • Node采用Google开发的V8引擎运行js代码,使用事件驱动、非阻塞和异步I/O模型等技术来提高性能,可优化应用程序的传输量和规模
  • Node大部分基本模块都用JavaSprit编写。在Node出现之前JS通常作为客户端程序设计语言使用,以JS写出的程序通常在用户的浏览器上运行

安装Node环境

  • 查看当前Node环境版本号

    • node --version
  • 下载:https://nodejs.org/en/download/
  • 安装
    • next
    • 安装过的重新安装就会升级
  • 确认Node环境变量是否安装成功
    • 在node安装目录下cmd执行node --version或者node -v
  • 环境变量

执行js代码

  • 编写js代码
  • 打开终端,定位到脚本文件所属的目录
  • 输入node 文件名执行对应的文件
  • 【注意】文件名不要使用node.js执行对应的文件
  • 在Node中,采用EcmaScript进行编码,没有BOM\DOM

读写文件

  1. //fs是file-system的简写,就是文件系统的意思
  2. //在Node中如果想要进行文件操作,就必须引入fs这个核心模块
  3. //在fs这个核心模块中,就提供了所有的文件操作相关的API
  4. //例如:fs。readFile就是用来读取文件的
  5. //1.使用require方法加载fs模块
  6. var fs=require("fs");
  7. //2.读取文件
  8. // 第一个参数就是要读取的文件路径
  9. // 第二个参数是一个回调函数
  10. // error
  11. // 如果读取失败,error就是错误对象
  12. // 如果读取成功。error就是null
  13. // data
  14. // 如果读取失败,data就是错误对象
  15. // 如果读取成功,data就是读取到的数据
  16. fs.readFile("./Node.js简介.md", function(error, data) {
  17. // <Buffer 23 23 23 20 4e 6f 64 65 2e 6a 73 e7 ae 80 e4 bb 8b 0d 0a 0d 0a 2a 20 4e 6f 64 65 2e 6a 73 e6 98 af e4 b8 80 e4 b8 aa e8 83 bd e5 a4 9f e5 9c a8 e6 9c ... 1740 more bytes>
  18. // 不是0 1 是因为二进制转换为16进制
  19. // 文件中存储的都是二进制数据
  20. // 可以通过toString()方法转换为我们可以看懂的
  21. console.log(data.toString());
  22. //通过判断error来判断有没有错误发生
  23. if (error) {
  24. console.log("有错误发生");
  25. } else {
  26. console.log(data.toString());
  27. }
  28. })

写文件

  1. //1.使用require方法加载fs模块
  2. var fs=require("fs");
  3. //第一个参数:文件路径
  4. //第二个参数:文件内容
  5. //第三个参数:回调函数
  6. // erroe
  7. // 成功:文件写入成功、error是null
  8. // 失败:文件写入失败、error是错误对象
  9. fs.writeFile('./helle')

node创建服务器

  1. // 1.加载http核心模块
  2. var http = require('http');
  3. // 2.使用http.createServer()方法创建一个WEB 服务器
  4. // 返回一个Server实例
  5. var server = http.createServer();
  6. // 3.服务器
  7. // 发请求 接受请求 处理请求 发送响应
  8. // 注册request 请求事件
  9. // 当客户端请求过来,就会自动触发服务器的request请求事件,然后执行第二个参数:回调函数
  10. server.on('request', function(request, response) {
  11. // request 请求事件处理函数,需要接受两个参数
  12. // Request请求对象
  13. // 请求对象可以用来获取客户端的一些请求信息,例如请求路径
  14. // Response 相应对象
  15. // 响应对象可以用来给客户端发送响应消息
  16. console.log('收到客户请求,请求路径是:' + request.url);
  17. // response对象有一个方法:write可以用来给客户端发送响应数据
  18. // write可以使用多次,但是最后一定要用end来结束响应,否则客户端会一直等待
  19. // response.write("hello")
  20. // response.write(" world")
  21. // 结束响应并且给客户端发送响应
  22. response.end('hello world');
  23. })
  24. // 4.绑定端口号,启动服务器
  25. server.listen(3000, function() {
  26. console.log("服务器启动成功");
  27. });

Node中的JavaScript

  • EcmaScript

    • 没有DOM\BOM
  • 核心模块

    在Node中为JavaScript提供了很多服务器级别的API,这些API绝大多数都被包装到了一个具名的核心模块中了。例如文件操作的fs核心模块,http服务构建的http模块,path路径操作模块,os操作系统信息模块

    1. //require用来加载核心模块
    2. var fs=require('fs');
  • 第三方模块

  • 用户自定义模块

    1. //require 方法的作用
    2. // 1.加载文件模块并执行里面的代码
    3. // 2.拿到被加载文件模块导出的接口对象
    4. // 每个文件模块中都提供一个对象exports
    5. // exports默认是一个空对象
    6. // 需要把所有需要被外部访问的成员添加到这个对象中

    Web服务器开发

    • ip地址和端口号

      • ip地址用来定位计算机
      • 端口号用来定位具体的应用程序
      • 一切需要联网通信的软件都会占用一个端口号
      • 端口号的范围从0-65536之间
      • 计算机中有一些默认端口号,最好不要去使用
        • 例如http服务的80

Node.js_1.1的更多相关文章

  1. babeljs源码

    babel.min.js!function(e,t){"object"==typeof exports&&"object"==typeof mo ...

  2. NPM (node package manager) 入门 - 基础使用

    什么是npm ? npm 是 nodejs 的包管理和分发工具.它可以让 javascript 开发者能够更加轻松的共享代码和共用代码片段,并且通过 npm 管理你分享的代码也很方便快捷和简单. 截至 ...

  3. node服务的监控预警系统架构

    需求背景 目前node端的服务逐渐成熟,在不少公司内部也开始承担业务处理或者视图渲染工作.不同于个人开发的简单服务器,企业级的node服务要求更为苛刻: 高稳定性.高可靠性.鲁棒性以及直观的监控和报警 ...

  4. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

  5. 细说WebSocket - Node篇

    在上一篇提高到了 web 通信的各种方式,包括 轮询.长连接 以及各种 HTML5 中提到的手段.本文将详细描述 WebSocket协议 在 web通讯 中的实现. 一.WebSocket 协议 1. ...

  6. 高大上的微服务可以很简单,使用node写微服务

    安装 npm install m-service --save 使用 编写服务处理函数 // dir1/file1.js // 使用传入的console参数输出可以自动在日志里带上request id ...

  7. 构建通用的 React 和 Node 应用

    这是一篇非常优秀的 React 教程,这篇文章对 React 组件.React Router 以及 Node 做了很好的梳理.我是 9 月份读的该文章,当时跟着教程做了一遍,收获很大.但是由于时间原因 ...

  8. 利用Node.js的Net模块实现一个命令行多人聊天室

    1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...

  9. Node.js:进程、子进程与cluster多核处理模块

    1.process对象 process对象就是处理与进程相关信息的全局对象,不需要require引用,且是EventEmitter的实例. 获取进程信息 process对象提供了很多的API来获取当前 ...

随机推荐

  1. CCF_201312-4_有趣的数

    dp题,dp[i][j]代表i位数,j状态的数量.其中,j 的状态表示值有6种. 0 1 2     √ j = 0 3 01 02   √ j = 1 03 12 13 23   √ j = 2 0 ...

  2. HDU_5045_状态压缩dp

    http://acm.hdu.edu.cn/showproblem.php?pid=5045 i从1到m依次更新,dp[i][j]表示更新到i题时,j表示每个人的答题状态,分别用0和1表示(因为每个人 ...

  3. ORACLE隐式类型转换

      隐式类型转换简介   通常ORACLE数据库存在显式类型转换(Explicit Datatype Conversion)和隐式类型转换(Implicit Datatype Conversion)两 ...

  4. Go语言实现:【剑指offer】跳台阶

    该题目来源于牛客网<剑指offer>专题. 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 1阶:共1种跳法: 2阶 ...

  5. 移植freertos到stm32 f103 的基本流程和总结

    为什么要在stm32 f103上面移植freertos   stm32 f103 以他的全面的文档,亲民的价格,强大的功能.成为无数微设备的方案首选.在市场上有极大的使用量.市场占有率也是非常的高.f ...

  6. 某cms审计思路,以及ci框架如何找寻注入点

    某cms审计思路,以及ci框架如何找寻注入点 ABOUT 之前闲着没事的时候审的某cms,之前看一群大表哥刷过一次这个cms,想着看看还能不能赶得上分一杯羹,还是审计出来些东西,来说一说一个前台注入吧 ...

  7. k8s系列---EFK日志系统

    文章拷于:http://blog.itpub.net/28916011/viewspace-2216748/   用于自己备份记录错误 一个完整的k8s集群,应该包含如下六大部分:kube-dns.i ...

  8. 增加yum源方式 安装升级 Mysql

             MySQL官方新提供了一种安装MySQL的方法--使用YUM源安装MySQL 1.MySQL官方网站下载MySQL的YUM源,  https://dev.mysql.com/down ...

  9. 安装python 第三方库(whl,py格式)

      注意:在python环境中输入  help('modules')   可以列出所有已经安装的模块     1.windows平台下:            1..1安装whl文件       安装 ...

  10. ssh常用命令大全

    ssh命令速查表 ssh-add ~/.ssh/your_private_key:输入你的私钥密码 就可以把你的私钥加入到ssh-agent中去 ssh-add -D: 删除所有管理的密钥 ssh-a ...