Node.js基础

Posted 长理小生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js基础相关的知识,希望对你有一定的参考价值。

node.js初学

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中的依赖。

以上是关于Node.js基础的主要内容,如果未能解决你的问题,请参考以下文章

node.js

Node.js简单总结笔记

Node.js简单总结笔记

Node.js之模块机制

Angularjs,我无法运行 node.js 服务器文件

JavaScript宿主对象之BOM和DOM