Node.js基础
@TOC
1.node.js简介
node.js基于chrom8,相当于一个运行js代码的虚拟平台,使得js不在依存html,可以构建服务器。
2.node.js搭建服务器
var http=require("http");
var server=http.creatServer(function(req,res){
res.setHeader("Content-Type","text/html;charset=UTF8");
res.end("first http server end");
})
//监听3000端口
server.listen(3000)
此时可以浏览器访问http://127.0.0.1:3000/
3.fs模块的简单使用
var http=require("http");
var fs=require("fs");
var server=http.createServer(function(req,res){
res.setHeader("Content-Type","text/html;charset=UTF8");
fs.readFile("./Hello.html",function (err,data){
res.write(data);
res.end("first http server end");
})
})
//监听3000端口
server.listen(3000)
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:3000/');
4.路由的简单设计
req.url可以得到形如/user/zhang/update的路由 通过字符串的match方法来匹配正则表达式从而获得各信息
var http=require("http");
var fs=require("fs");
var server=http.createServer(function(req,res){
res.setHeader("Content-Type","text/html;charset=UTF8");
var url=req.url;
var arr=url.match(/\/user\/(.+)\/(.+)$/);
if (!arr){
res.end("no pages!");
}else {
var $1=arr[1];
var $2=arr[2];
res.write("<h2>"+$1+"</h2>");
res.write("<h2>"+$2+"</h2>");
res.end();
}
})
//监听3000端口
server.listen(3000)
Content-Type:
res.setHeader("Content-Type","text/html;charset=UTF8");
- text/html:html格式
- text/plain:纯文本格式
- text/xml:xml格式
- image/gif:gif图片格式
- image/jpg:jpg图片格式
- image/png:png图片格式
5.模块
当一个js文件可以独立完成一个功能时,这个文件就是一个模块; 当多个文件共同完成一个功能时,这些文件就是一个模块 模块module
HTML的多文件引用
多个js文件公用一个html宿主时,变量都在同一个作用域,因为变量是window的对象
node.js的多文件引用
- require()在引用文件的同时也在执行该文件
- node.js文件中的变量作用域天生隔离,因为没有window对象
- 各node.js文件间需要自动暴露
exports命令
var num=100;
export.num=num;
另外一个js文件再使用require引入该文件就可以使用num变量了
exports的命名空间
每次require返回的是被引用文件中exports所暴露的属性或方法组装成的对象
module.exports
当一个js文件只想暴露一个属性时,一般是暴露构造函数 其他的属性或方法赋值给构造函数的属性 可以通过new People.People()可以new对象
文件夹的使用
require的参数没有.js后缀时就默认在引用一个文件夹 require的参数是一个文件夹时,会把文件夹的每一个文件封装到一个对象里返回, var result=require(“./result”); result.file1.area
node_modules文件夹
如果文件夹内部存放了node_modules文件夹,require的参数就不需要./开头了,只要require的参数不是./起头就是引入node_modules文件夹内部的文件
6.npm的基本使用
- npm -v 查看npm的版本信息
- npm是一个包管理器,是一个世界范围的模块分享社区,我们可以使用这个社区里别人开发的模块。
- www.npmjs.com可以直接搜索需要的模块,然后使用命令安装,如:npm install nzh,nzh为模块名
npm的身份证和依赖
- 依赖就是node_modules里的模块,身份证是packge.json,里面会有一些包名、关键字等信息,使用npm init可以初始化然后设置身份证
- 在有了身份证后,再添加依赖时要有–save选项,如npm install –save nzh 这样做是为了便于包的传播安装,别人拿到package.json后就可以直接npm install来安装所有package.json中的依赖。