nodejs

1,什么是nodejs?
答:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统。

 

2,node的安装。

Node.js版本:
v6.11.4 LTS(long time support) (长时间支持的版本)
v8.7.0 Current (现在的版本)
偶数位为稳定版本:v6.8.x v6.6.x v6.4.x
基数位为非稳定版本:v6.9.x v6.7.x v6.5.x


3,如何搭建一个web服务器。

var http = require("http"); //加载引入nodejs 提供的http模块。创建服务器

http.createServer(function(req,res){
//req 浏览器端传给后台的东西
//res 后台给浏览器返回东西
if(req.url=="/favicon.ico"){
return ;
}

res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
res.write(render(req.url));
res.end();

}).listen(3000);

function render(url){
switch(url){
case "/login":

return "login页面";
case "/register":

return "register 页面";

case "/home":

return "home页面";

default:
return "404";
}
}

 


4, npm使用。

npm init (初始化--创建一个package.json的文件)

npm install 包名 –g (uninstall,update)

npm install 包名 --save-dev (uninstall,update) npm list -g (不加-g,列举当前目录下的安装包)

npm info 包名(详细信息)

npm info 包名 version(获取最新版本)

npm install gulp@3.8.8(安装指定版本)

npm outdated(  检查包是否已经过时)

"dependencies": { "request": "^2.78.0" } ^ 表示 如果 直接npm install 将会 安request 2.*.* 最新版本

"dependencies": { "request": "~2.78.0" } ~ 表示 如果 直接npm install 将会 安装gulp 2.78.* 最新版本

"dependencies": { "request": "*" } * 表示 如果 直接npm install 将会 安装 request 最新版本

 

5,淘宝镜像(cnpm)

  cnpm每个十分钟向npm访问一次,获取相关信息,以保证尽量与官方服务同步。

其实就相当于客户端于npm之间的代理,cnpm向npm获取包,客户端向cnpm获取包,,以提高下载速度。

 

6,yarn

对比npm:

1.并行安装,速度非常快

2.默认生成 lockfile. 保证 yarn 每次安装相同版本的依赖

3.快速、可靠、安全

开始新项目

          yarn init

添加依赖包

           yarn add [package]

           yarn add [package]@[version]

           yarn add [package] --dev

升级依赖包

          yarn upgrade [package]

          yarn upgrade [package]@[version]

移除依赖包

           yarn remove [package]

安装项目的全部依赖

          yarn install

7,模块化

(1)。test.js

        

function test(){
console.log("test方法");
}


var obj = {
name:"cy",
age:23,
}
//1. module.exports只能导出一个东西
// module.exports = obj; //暴露这个方法

//2. exports 可以挂在多个方法和属性
exports.obj = obj;
exports.test = test;

 

(2).引用test.js文件

var cytest = require("test.js");
/*
1. .js可以省略

2. 引入模块只写文件夹名, 自动找文件夹下的index.js

3. 模块路径大小写不区分
*/

console.log(cytest);

  

(3)。利用模块化创建服务器

 

      (1),rander.js

               


function render(url){
switch(url){
case "/login":

return "login页面";
case "/register":

return "register 页面";

case "/home":

return "home页面";

default:
return "404";
}
}

module.exports =render;

 

 

(2).引用rander.js创建服务器

 

var http = require("http"); //加载引入nodejs 提供的http模块。创建服务器
var render = require(".render");
http.createServer(function(req,res){
//req 浏览器端传给后台的东西
//res 后台给浏览器返回东西
if(req.url=="/favicon.ico"){
return ;
}

res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
res.write(render(req.url));
res.end();

}).listen(3000);

 

posted @ 2017-10-23 19:00  小蜗牛大能耐  阅读(306)  评论(0)    收藏  举报