Node实践之一

大家都知道JavaScript的专长就是处理客户端也就是与浏览器打交道了,所有的与服务器端的交互必须交给后台语言处理程序去做,基于JavaScript不能与服务器进行直接交互这样一个现状,Ryan Dahl决定使用V8引擎来创建JavaScript服务器环境。在此简单叙述一下这样做的原因:

  • V8引擎很快
  • V8专注Web,所以在处理HTTP,DNS,TCP等方面特别擅长
  • 大多数Web开发人员都会JavaScript

用一句话来说就是Node.js是一个事件驱动的服务器端JavaScript环境。

也许有人会问了,什么是服务器端的JavaScript?

JavaScript与Web页面交互就是通常所称的客户端JavaScript,因为它发生在浏览器或者说客户端。服务器端JavaScript发生在把页面发送给浏览器之前的服务器上。

安装Node.js

(因为我的电脑win7,个人比较穷,也没有苹果电脑,后台开发能力也只能说略懂,也没有在Unix操作系统上测试过,所以在此申请一下,我的操作全部都是在微软平台上。不好意思啊)

nodejs官网首页 下载相应的版本安装即可,很简单的

验证Node.js是否安装正确

  1. 打开Node.js命令提示窗口
  2. 输入1+1
  3. 看一下是否界面显示2

第一个简单demo

1、创建server.js,代码如下

var http = require(‘http‘);

http.createServer(function (request, response) {//创建服务器
    response.writeHead(200, { ‘Content-Type‘: ‘text/plain‘ });//回传到客户端的头信息
    response.end(‘Hello World!  ‘);//回传到客户端的信息
}).listen(3000,‘127.0.0.1‘);//第一个参数为端口  第二个参数为主机地址

console.log(‘server running at http://127.0.0.1:3000‘);

2、开始--运行 cmd(也就是打开命令提示符窗口)  把当前路径cd转到server.js所在的目录

3、执行node server(本来是执行node server.js  但因为是js文件,所以默认可以省略.js)

4、打开浏览器,输入网址:http://127.0.0.1:3000  会发现浏览器显示hello world

在此备注一下:

  • 即使你只是修改js里面的哪怕一个字符,如果你想看到修改后的效果,那就必须得重新编译也就是说重新运行node命令
  • 要想停止服务器运行并返回终端,可以按ctrl+c(这个命令很方便的)
  • Node.js是运行的v8引擎上的,v8是同Google开发的开源的JavaScript引擎。事实上Node.js是个编程平台
  • 关于Node.js,并发的含义是一次做多件事件的能力

NPM(Node Package Manager)Node包管理器

npm允许开发人员在应用程序中创建、共享、重用模块。说句通俗一点的话,包就是一个功能模块,也确实是node.js的一个很有特色的地方,为开发人员提供了很多便利。

通过使用模块可以快速的给应用程序添加许多功能。模块通常可以为开发人员除去常见的困难。

模块就是可重用的代码库

模块相关demo

安装模块

npm install [module_name]

使用模块

var module=require(‘module‘);

demo具体步骤:

1、创建foo.js,代码如下

var _ = require(‘underscore‘);
_.each([1, 2, 3], function (num) {
    console.log(‘underscore.js says ‘ + num);
});

2、打开命令提示符,将目录转到foo.js所在目录(文章下面的demo  这个步骤也是必须的 但我省略不写了哦)

3、运行npm install underscore  安装underscore包之后命令提示符中将显示相应的信息 并且在foo.js所在的目录下多一个node_modules文件夹,node_modules文件夹下有underscore包文件

4、运行node foo

如何找模块

在终端直接使用npm命令行工具来搜索 也就是npm search [模块的名称] 如果有多个关键字的话可用空格分开

提示:因为node.js允许大家只有有一个账户就可以上传包,也就是说任何人都可以是node.js模块的作者,所以尽管模块可通过npm获得,但并不代表它是得到良好测试或者说是稳定的,请使用模块的下载量和项目的问题数量作为模块的可靠性和成熟度的大致指南。

模块的安装方式

有两种方式

  1. 本地安装  npm install [module_name]
  2. 全局安装 npm install -g  [module_name]

全局安装意味着可以在文件系统的任何位置运行它。

本地安装模块意味着模块会被安装在项目内名为node_modules的文件夹中,而且它只可在该项目中使用。

全局安装模块意味着模块可在系统的任何一个地方使用。

作为 一条经验法则,请本地安装Node.js模块。

如何找模块文件

命令:npm docs [module_name]

这个命令执行之后会打开浏览器并进入模块作者所提供的文档页面,不信你可以在终端执行

npm docs underscore

通过运行如下命令查看项目的bug,这会打开浏览器并进入模块作者所提供的问题页面

npm bugs underscore

事实上还有一条查看源码命令(但是我电脑老是没法打开 提示说权限不够)

npm edit underscore

package.json

在C#中使用using来引用外部程序集,而在node.js中是使用package.json来指定依赖关系。npm允许开发人员使用package.json文件来指定在应用程序中要用的模块,并且通过单个命令来安装它们:npm install

可想而知这样的方式有哪些好处:

  • 无需一个一个地安装模块
  • 其实开发人员可以很容易的安装你的应用程序
  • 应用程序的依赖关系存储在一个单一的地方

package.json相关demo

1、建立一个foo.js文件,代码如下所示:

var _ = require(‘underscore‘);
_.each([1, 2, 3], function (num) {
    console.log(‘underscore.js says ‘ + num);
});

2、在foo.js同目录下建立一个package.json的文件,代码如下所示

{
"name":"example02",
"version":"0.0.1",
"dependencies":{
    "underscore":"~1.2.1"
}
}

3、在终端执行npm install 这时候将会看到underscore库安装在node_modules文件夹下

建议:即使应用只需要安装一个模块,还是强烈建议使用package.json文件来管理Node.js模块

未完待续(考虑到篇幅太长的问题  后续文章将继续探讨)

时间: 07-11

Node实践之一的相关文章

Node实践之二

先从一个简单的demo说起,用cmd打开命令提示符,输入echo Hello,大家是不是看到终端上显示出了Hello字样,事实上这就是一个简单的事件. 回到正题,相信提到node.js,免不了让人想起非阻塞.回调.事件循环.并发.网络编程等.(在此强调一下并发:许多人同时尝试做同样的事情),下面将主要介绍一下node.js的特色功能! 回调 相信大家到回调应该不陌生,简单一点的说就是函数可以作为参数传递给另外一个函数中,然后被调用.我们来看看node.js是如何使用回调的,用例子说话!(哈哈)

一个月时间整理《深入浅出Node.js》

今天终于把朴灵老师写的<深入浅出Node.js>给学习完了, 这本书不是一本简单的Node入门书籍,它没有停留在Node介绍或者框架.库的使用层面上,而是从不同的视角来揭示Node自己内在的特点和结构.建议 有一定Node基础或者做过Node方面的小项目的同学阅读,看完以后你的思维会有很奇特的碰撞,我看的时候就常常会有这样的想法:“哦,原来这个功能是 这样实现的哦”.下面这篇文章是我第二次阅读<深入浅出Node.js>的一些学习记录,并且通过百度脑图这个工具来画出思维导图,每天将自

为什么反对用Node!

为什么反对用Node! 随着无线端的快速普及,前后端分离技术走上前台,而Node由于它的一些特性被工程师快速接受尤其是前端工程师,所以产生了很多Node是否会引起新的技术变革的讨论.我本人是淘系的一个Web开发人员,基本上经历了淘系关于Node和Java技术选型讨论的过程,所以今天我给大家推演一下在像淘系这个环境下Node能否会成为主流的Web开发技术,当然后面也给出了我认为比较适合的场景. Node火了! 在百度中搜索Node可以得到105w个结果,图书出版方面13年3月到15年6月2年时间有

深入浅出Nodejs读书笔记(转)

原文来自我的博客:http://tw93.github.io/2015-03-01/shen-ru-qian-chu-nodejs-reading-mind-map.html 今天终于把朴灵老师写的<深入浅出Node.js>给学习完了, 这本书不是一本简单的Node入门书籍,它没有停留在Node介绍或者框架.库的使用层面上,而是从不同的视角来揭示Node自己内在的特点和结构.建议有一定Node基础或者做过Node方面的小项目的同学阅读,看完以后你的思维会有很奇特的碰撞,我看的时候就常常会有这样

文章目录

chrome 利用chorme调试手机网页 Chrome控制台 JS调试的一些小技巧 chrome使用技巧(看了定不让你失望) 我所了解的chrome 你可能不知道console强大 CSS3精典 css3新增属性API CSS收集的常用代码(与打印相关) CSS3动画(性能篇) css编写规范 CSS读书笔记系列 看<css知多少>的一些总结 你所不了解的float(滥用float的怪异现象) CSS3系列四(Media Queries移动设备样式) CSS3系列一(概述.选择器.使用选择器

五年 Web 开发者 star 的 github 整理说明

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:樊东东 前端从业几年,积累了不少github开源库. 有时候想查阅以前star的库,但不好找,github大多库都是英文说明,对中文开发者不太友好,这里整理下收集的github库,方便需要的时候查阅. 其实老早就有整理github上资源的想法,现在才付诸行动. 正在写的时候收到稀土圈公众号开源库功能上线的通知,英雄所见略同. node-ffmpeg ffmpeg视频处理的node库 bgrins/videoconverter.j

深入浅出Nodejs读书笔记

深入浅出Nodejs读书笔记 转:http://tw93.github.io/2015-03-01/shen-ru-qian-chu-nodejs-reading-mind-map.html category:node学习笔记       2015-03-01 今天终于把朴灵老师写的<深入浅出Node.js>给学习完了, 这本书不是一本简单的Node入门书籍,它没有停留在Node介绍或者框架.库的使用层面上,而是从不同的视角来揭示Node自己内在的特点和结构.建议有一定Node基础或者做过No

Node.js实践第一天

实践案例一 表单提交 demo.html 1 <!doctype html> 2 <html> 3 <head> 4 <title>表单提交</title> 5 </head> 6 <body> 7 <form method="post" action="http://localhost:3000/"> 8 姓名:<input type="text&quo

使用Node.js完成的第一个项目的实践总结

http://blog.csdn.net/yanghua_kobe/article/details/17199417 项目简介 这是一个资产管理项目,主要的目的就是实现对资产的无纸化管理.通过为每个资产生成二维码,来联合移动终端完成对资产的审核等.这个项目既提供了Web端的管理界面也提供移动端(Andorid)的资产审核.派发等相关功能.我们用Node.js构建该项目的Web端以及移动端的Serveice API. 项目主框架:Express 简介 Express 是一个非常流行的Node.js