js学习总结----初步了解node

JS是一门“运行在客户端(运行在浏览器)”的“轻量级”的脚本编程语言

JS目前不仅仅只能在浏览器中运行,还可以在NODE中运行

node的优点:基于谷歌V8引擎的,具有强大的io操作,基于事件驱动的异步 编程。

1、什么是node

node是一个环境,供JS代码执行的环境,我们可以把他等价于浏览器,只不过我们一般都会把node这个环境安装到服务器端,这样的话我们就可以在服务器端使用JS编写程序了,也就是JS不仅仅是客户端的语言,也是服务器端的语言...

2、node && 浏览器

NODE采用的是谷歌的V8引擎来渲染JS的(运行的速度快、稳定、我们编写的JS代码不需要考虑兼容)

浏览器中的全局JS对象是window,而node环境下的全局JS对象是global

浏览器是安装在客户端的,为了保护客户端的安全,基本上不可能提供用JS对客户电脑磁盘上的文件进行操作的功能;但是node环境中提供了对应的I/O操作(服务器上文件的操作),我们使用JS可以对服务器磁盘下的文件进行增删改查。

NODE是基于事件驱动的 / 异步编程(我们在NODE环境下编写的JS程序一般都是异步编程的)

NODE提供给JS很多新的方法:http.createServer、fs.writeFileSync、fs.readFileSync...

3、如何让JS代码在NODE中执行?

利用webStrom嵌入了NODE的环境,直接把编写的JS通过右键“run xxx.js”在NODE环境中执行(不建议大家经常这样使用,因为有些时候我最新执行的操作其实会运行前几次的缓存,因为有些时候会有缓存)

在命令窗口中执行

  在当前要执行的JS文件目录下,shift+右键 =>在此处打开命令窗口 => node xxx.js 相当于把JS代码在NODE环境中执行了。

  在NODE中执行JS代码和浏览器中执行一样,如果JS代码发生了修改,想要看到最新的效果需要重新执行对应的JS文件。

  在命令窗口中执行node,然后开始编写对应的JS代码测试即可(RPEL命令操作),和在浏览器的控制台编写代码测试一样。

4、NODE模块

  内置模块(NODE环境天生提供的):http(createServer...)、fs(writeFileSync、readFileSync)、url...

  自定义模块:我们自己定义的模块

    在NODE环境中,我们在当前的项目下创建了一个JS文件,就相当于创建了一个模块,例如:新建一个a.js,就相当于创建了a模块

    如果需要提供一些方法给其他的模块使用,则需要通过module.exports把方法导出,例如:在A模块中写了module.exports = {fn:fn} / module.exports.fn = fn

    如果现在B模块中使用,我们需要先导入var a = require("./a");这样就可以调取A模块导出的方法 a.fn()

  第三方模块:别人写好的模块我们拿来使用   在NODE中如果需要使用别人的模块,需要使用npm这个命令进行管理 https://www.npmjs.com/

  安装: npm install 第三方模块名称 -g (安装在NODE的全局环境中)

  卸载:npm uninstall 第三方模块名称 -g

  安装成功后在JS中通过 var less = require("less");把刚才安装的第三方模块导入到JS中,这样的话我们就可以使用这个模块中提供的方法了 less.render...

5、服务创建成功后,如何的向服务器发送请求

  在浏览器中输入 http://localhost:端口号/

  在浏览器中输入 http://本机的IP地址:端口号/

  

下面是常用的http、fs、url的方法的代码:

//导入三个常用的NODE内置模块
var http = require("http"),
    fs = require("fs"),
    url = require(‘url‘);//URL模块提供了一个方法,url.parse(str),用来解析url地址。第一个参数为传递的url,第二个参数默认是false,变为true后,返回结果的query中存储的是经过处理解析后的结果:把传递进来的多组数据以键值对的方式进行存储

//1、HTTP
/*
    http.createServer  创建一个服务,变量server就是我们创建出来的那个服务
    server.listen:为这个服务监听一个端口80
*/ 

var server = http.createServer(function(request,response){
    //当客户端向服务器端的当前服务(端口号是80这个服务)发送一个请求,并且当前服务已经成功接收到这个请求后
    //request(请求):存放的是所有客户端的请求信息,包含客户端通过问号传参的方式传递给服务器的数据内容
    // console.log(request.url);//客户端请求的地址,我们服务端通过request.url获取到的是不包括localhost或者ip地址的信息例如:index.html?name=zhangsan&age=7
    var urlObj = url.parse(request.url,true),
        pathname = urlObj.pathname,
        query = urlObj.query;

    //根据请求的URL地址(具体的是根据地址中的pathname)获取到对应资源文件中的源代码
    if(pathname === "/1.html"){
        //fs.readFileSync([path+name],[encode])同步读取指定文件夹中的内容:文件中的内容读取不完不执行下面的操作
        var con = fs.readFileSync(‘./1.html‘,"utf-8");
    }

    //response(响应):提供了向客户端返回内容和数据的方法
    //response.write:向客户端返回内容
    //response.end:告诉服务器响应结束了(一定要加)
    response.write(con);
    response.end();

});
server.listen(80,function(){
    //当服务创建成功,并且端口号监听成功之后执行这个回调函数
    console.log("server is create success,listening on 80 port")
});
时间: 2024-07-29 14:39:36

js学习总结----初步了解node的相关文章

node.js学习一——什么是node.js

定义:node.js是运行在服务器端的运用了谷歌v8引擎的javascript运行平台 特点:1. 异步式I/O(非阻塞式I/O) 2. 事件驱动 什么是异步式I/O(非阻塞式I/O)? 要了解什么是异步式I/O(非阻塞式I/O),必须要先了解下什么是I/O,什么阻塞, 什么是同步式I/O(阻塞式I/O). I/O的定义: 线程在执行磁盘读写或者是网络通信时统称为I/O操作. 阻塞定义: 在I/O的过程中由于要耗费的时间比较长,操作系统会剥夺这个线程对CPU的控制权,让线程暂停执行.同时把资源交

【Node.js学习笔记四】Node包管理器(Node Packaged Manager,NPM)

Node包管理器是一个命令行应用程序.可以查找.安装.删除.发布以及做与Node封装模块相关的其他很多东西. Node包管理器提供了Node包的注册表和开发之间的联系. Node包管理器的命令

Node.js 学习资源

这篇文章编译整理自Stack Overflow的一个如何开始学习Node.js的Wiki帖,这份资源列表在SO上面浏览接近60万次,数千个收藏和顶.特意整理发布到这里,其中添加了部分中文参考资料. 学习指南和教程 NodeSchool.io 交互式课程 Node的艺术 (Node简介) Hello World Hello World Web Server Node.js 指南 使用Node.js, express和MongoDB创建一个博客 Node+MongoDB 100分钟建站攻略 Proj

NODE.JS学习的常见误区及四大名著

NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang/p/4374681.html 收到了很多兄弟的热情回复和激烈讨论,在此深表感谢,有的朋友觉得我写的比较粗犷,没有给出具体的性能分析和对比,在此我想说的是其实好多东西的性能分析,根本就不用我写到博客上,其一是如果我写了,很多人同样会觉得不客观,不中立,其二是网上很多中立的机构,随便搜索一下,对比太多

node.js在windows下的学习笔记(1)---安装node.js

1.首先打开http://www.nodejs.org/ 2.选择DOWNLOADS,跳转到下面的画面,我的系统是windows7的32位.所以选择.msi的32bit版本. 3.下载后,得到一个5.43MB大小的安装包, 4.运行安装包 点击next 打个勾,点击next 选择安装目录 最后,安装成功啦 node.js在windows下的学习笔记(1)---安装node.js,布布扣,bubuko.com

Node.js学习笔记(3) - 简单的curd

这个算是不算完结的完结吧,前段时间也是看了好久的Node相关的东西,总想着去整理一下,可是当时也没有时间: 现在看来在整理的话,就有些混乱,自己也懒了,就没在整理,只是简单的记录一下 一.demo的简单介绍 这次demo,只涉及到简单的curd操作,用到的数据库是mongo,所以要安装mongo数据库,数据库连接驱动是mongoose: 当然关于mongo的驱动有很多,比如mongous mongoskin等:(详见http://cnodejs.org/topic/4f4ca8e0940ce2e

node.js 学习 00

前言 先写点废话,相中node.js倒是纯属偶然. 在这之前我想要要搭建一个人网站,我感到现有的博客/空间之类只能给予用户有限的控制力.于是在AWS上申请了免费一年的VPS,自己买了一个域名,百度了之后选择了在主机上挂了一个nginx.在这之后我发现直接手写html是一件十分麻烦的事情,于是暂时失去了构建的方向.只是改了改nginx的默认的主页,就先放着了. 在这之后的新学期里,我多一门 数据库原理 的课程,在这之前我通过王垠的博客了解过Nosql的一些概念.数据库原理老师对传统关系性数据库的吹

Node.js 学习一

Node.js是一个可以让javascript运行在服务器端的平台.node.js是一个为实时web应用开发而诞生的平台,它考虑到了实时响应/超大规模数据要求下架构的可扩展性.它采用了单线程,异步石IO,事件驱动式的设计模式. Node.js有着强大而灵活的包管理器(node package manager)npm node.js 架构设计:1,异步式I/O,事件驱动 2,V8引擎作为javascript引擎 3,高效的libev事件驱动库 4,高效的libeio异步I/O库 CommonJS:

系列文章--Node.js学习笔记系列

Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql) Nodejs学习笔记(五)--- Express安装入门与模版引擎ejs Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识 Nodejs学习笔记(七)--- Node.js + Exp