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);

浙公网安备 33010602011771号