nodejs(一)

    • nodejs第一章节
      • 使用node来实现第一个http服务器
        • var http = require(‘http’);
        • http.createServer(function (request, response) {
        • // 发送 HTTP 头部
        • // HTTP 状态值: 200 : OK
        • // 内容类型: text/plain
        • response.writeHead(200, {‘Content-Type’: ‘text/plain’});
        • console.log(“我是yyk”);
        • // 发送响应数据 “Hello World”
        • response.end(‘Hello World\n’);
        • }).listen(8888);
      • 学习资料
        • 菜鸟教程
          • http://www.runoob.com/nodejs/nodejs-tutorial.html
        • nodejs参考手册
          • http://nodeapi.ucdok.com/#/api/
      • 模块
        • require是啥?
        • 模块化开发
          • 为什么会有模块?
            • 在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即可;如今CPU、浏览器性能得到了极大的提升,很多页面逻辑迁移到了客户端(表单验证等),随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库层出不穷,前端代码日益膨胀
            • 这时候JavaScript作为嵌入式的脚本语言的定位动摇了,JavaScript却没有为组织代码提供任何明显帮助,甚至没有类的概念,更不用说模块(module)了,JavaScript极其简单的代码组织规范不足以驾驭如此庞大规模的代码
          • 模块的好处
            • 既然JavaScript不能handle如此大规模的代码,我们可以借鉴一下其它语言是怎么处理大规模程序设计的,在Java中有一个重要带概念——package,逻辑上相关的代码组织到同一个包内,包内是一个相对独立的王国,不用担心命名冲突什么的,那么外部如果使用呢?直接import对应的package即可
            • import java.util.ArrayList;
            • 遗憾的是JavaScript在设计时定位原因,没有提供类似的功能,开发者需要模拟出类似的功能,来隔离、组织复杂的JavaScript代码,我们称为模块化。
            • 一个模块就是实现特定功能的文件,有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。模块开发需要遵循一定的规范,各行其是就都乱套了
          • commonjs规范
            • CommonJS就是为JS的表现来制定规范,因为js没有模块的功能所以CommonJS应运而生,它希望js可以在任何地方运行,不只是浏览器中。
            • CommonJS能有一定的影响力,我觉得绝对离不开Node的人气,不过喔,Node,CommonJS,浏览器甚至是W3C之间有什么关系呢,
          • 案例:引入url模块解析路径
            • var http = require(“http”);//引入一个http的模块?

              var url = require(“url”);//引入路径模块

              var server = http.createServer(function (req,res) {

              //parse(路径,第二个参数为将请求参数解析为对象)

              var urlObj = url.parse(req.url,true);

              console.log(urlObj);

              res.end();

              });

              server.listen(8080);

          • 创建自己的模块
            • 加载当前目录的模块
              • 不加var 的变量是全局变量,在模块内部最好加var
              • 要导出一个属性或者方法使用:module.exports
                • 如果是模块下的方法和属性使用:module.exports={xx:xx}
                • 如果是想让模块直接接受方法就导出函数
            • 加载非当前目录的模块
              • 首先会看当前目录是否有一个node_modules,如果有就看进入里面查找是否有叫模块名称的文件或者是否有叫模块名称的文件夹
              • 如果是模块名称的文件夹需要看一下文件夹内部是否有index.js或者package.json中是否有设置mian属性
                • {

                  “name”: “home”,

                  “version”: “0.0.1”,

                  “main”: “home2.js”

                  }

              • 如果当前目录中没有node_modules,会向上查找
                • 可以通过:console.log(module)输出
                  • id: ‘.’,当前模块的id

                    exports: {},当前模块的导出对象

                    parent: null,父亲 谁require了自己

                    children: [],儿子 它require了谁

                    filename: ‘/Users/tangxiangrong/WebstormProjects/node201606/5.npm/require5.js’,

                    loaded: false,

                    paths:

            • 加载原生模块
          • 扩展
            • 非node项目中也可以使用模块化开发技术,用得比较多的模块加载器有:requirejs(CMD),seaJs(AMD)
        • npm
          • npm
            • 包(一组模块的集合)
            • 举例:安装express
            • NPM作为Node的包管理器
            • 案例1:安装一个express模块,看他的结构
        • 参考资料
          • http://www.cnblogs.com/dolphinX/p/4381855.html
      • repl(交互式解释器)
        • REPL(Read Eval Print Loop:交互式解释器)概念
          • 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。
          • 读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中。
          • 执行 - 执行输入的数据结构
          • 打印 - 输出结果
          • 循环 - 循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出。
          • 进入repl方式:终端中键入node
        • repl处理:
          • 表达式运算
            • $ node
            • > 1 +4
            • 5
            • > 5 / 2
            • 2.5
            • > 3 * 6
            • 18
            • > 4 - 1
            • 3
            • > 1 + ( 2 * 3 ) - 4
            • 3
            • >
          • 使用变量
            • $ node
            • > x = 10
            • 10
            • > var y = 10
            • undefined
            • > x + y
            • 20
            • > console.log(“Hello World”)
            • Hello World
            • undefined
          • 多行表达式
            • $ node
            • > var x = 0
            • undefined
            • > do {
            • … x++;
            • … console.log(“x: “ + x);
            • … } while ( x < 5 );
            • x: 1
            • x: 2
            • x: 3
            • x: 4
            • x: 5
            • undefined
            • >
          • 下划线
            • 你可以使用下划线(_)获取表达式的运算结果
            • $ node
            • > var x = 10
            • undefined
            • > var y = 20
            • undefined
            • > x + y
            • 30
            • > var sum = _
            • undefined
            • > console.log(sum)
            • 30
            • undefined
            • >
          • REPL 命令
            • trl + c - 退出当前终端。
            • ctrl + c 按下两次 - 退出 Node REPL。
            • ctrl + d - 退出 Node REPL.
            • 向上/向下 键 - 查看输入的历史命令
            • tab 键 - 列出当前命令
            • .help - 列出使用命令
            • .break - 退出多行表达式
            • .clear - 退出多行表达式
时间: 2024-08-02 08:08:24

nodejs(一)的相关文章

Node.js 使用angularjs取得Nodejs http服务端返回的JSON数组示例

server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); // 创建服务器,创建HTTP服务器要调用http.createServer()函数,它只有一个参数,是个回调函数,服务器每次收到http请求后都会调用这个回调函数.服务器每收到一条http请求,都会用新的request和response对象触发请求函数. var server=http.createS

Nodejs + MongoDb

一.搭建开发环境 进入 http://nodejs.org 下载开发环境 http://Expressjs.com 下载安装Express  npm install -g express 继续安装ejs:npm install ejs 如果要想运行Node.js程序,则现在只能够使用“node app.js”,而这样的运行方式,如果在app.js文件修改之后往往需要重新启动才可以加载新的内容,这对于开发是非常不方便的, 为此,可以使用一个supervisor组件包,它可以动态的加载修改之后的开发

nodejs应用在linux服务器中的部署

1.(可选)添加用户: addgroup wmui添加用户组useradd -d /home/wmui -s /bin/bash -m wmui创建wmui用户passwd wmui设置密码,如果忘记密码,也可用此命令重置密码usermod -a -G wmui wmui 添加用户到组visudo 设置sudo权限然后会跳转到下面页面 root ALL=(ALL:ALL) ALL下面添加wmui ALL=(ALL) NOPASSWD: ALLctrl+x保存退出接下来打开一个新的窗口,测试是否登

centos 6.5安装NodeJS

centos 6.5安装NodeJS 下载 可以在本地下载node.js最新版,然后通过ftp工具上传到服务器,或者直接在服务器终端使用wget命令下载(我当时下载的是node-v7.5.0-linux-x86版本,其他版本请查看上面链接然后替换即可): $ wget http://nodejs.org/dist/latest/node-v7.5.0-linux-x86.tar.gz 解压 进入服务器终端,找到上传或者下载的安装包,解压 $ tar -zvxf node-v7.5.0-linux

NodeJS之queryString

前面的话 无论是前端还是后端,经常出现的应用场景是URL中参数的处理.nodeJS的queryString模块提供了一些处理 query strings 的工具.本文将详细介绍nodeJS中的queryString var querystring = require('querystring'); /* { unescapeBuffer: [Function], unescape: [Function: qsUnescape], escape: [Function], encode: [Func

进阶之初探nodeJS

一.前言 在"初探nodeJS"随笔中,我们对于node有了一个大致地了解,并在最后也通过一个示例,了解了如何快速地开启一个简单的服务器. 今儿,再次看了该篇随笔,发现该随笔理论知识稍多,适合初级入门node,固萌生一个想法--想在该篇随笔中,通过一步步编写一个稍大一点的node示例,让我们在整体上更加全面地了解node. so,该篇随笔是建立在"初探nodeJS"之上的,固取名为"进阶之初探nodeJS". 好了,侃了这多,那么我们即将实现一个

引用nodejs的url模块实现url路由功能

我们在本地创建服务器之后需要写不同的后缀名来访问同一个站点的不同页面,如果不实现路由功能.则每次访问localhost:3000 不论后面写什么  比如localhost:3000/index.localhost:3000/detail...最终都会访问同一个地址:而用url路由则可以实现访问不同的页面:在实现url路由功能之前,首先需要引入url模块:const url = require('url');  nodejs 为我们提供了url模块,并且提供了url模块的一些方法: 最终要的方法是

nodejs入门 多人聊天视频

Node.js 是运行在服务端的 JavaScript,如果你熟悉Javascript,那么你将会很容易的学会Node.js. 下边是nodejs的安装和多人聊天系统, windows环境下 1.安装nodejs nodejs的官网 https://nodejs.org/en/ 下载nodejs最新版本一步步安装就好. 没有什么可说的. 2.安装完成以后查看当前nodejs的版本和测试nodejs时候成功 查看nodejs版本. cmd命令行窗口 ---> node -v 测试nodejs 是否

NodeJs编写小爬虫

一,爬虫及Robots协议 爬虫,是一种自动获取网页内容的程序.是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化. robots.txt是一个文本文件,robots是一个协议,而不是一个命令.robots.txt是爬虫要查看的第一个文件.robots.txt文件告诉爬虫在服务器上什么文件是可以被查看的,搜索机器人就会按照该文件中的内容来确定访问的范围. 如上图,我们可以在网站中直接访问robots.txt文件查看网站禁止访问和允许访问的文件. 二,使用NodeJs爬去

ActiveMQ + NodeJS + Stomp 极简入门

前提 安装ActiveMQ和Nodejs 测试步骤 1.执行bin\win32\activemq.bat启动MQ服务 2. 打开http://localhost:8161/admin/topics.jsp 用户名和密码都是 admin 3. 下载Stomp npm install stomp-client 4. js的测试代码 var Stomp = require('stomp-client'); var destination = '/topic/myTopic'; var client =