Node 的基本使用

用于操作后端的服务。

 Node.js不是一门语言,也不是库,也不是框架,Node.js是一个运行时环境,简单的来说就是Node.js可以解析和执行JavaScript,以前只有浏览器可以解析执行javaScript代码,也就是说现在的javaScript 可以完全脱离浏览器来运行。

Node读文件:

在使用的时候需要引入fs模块,fs(file-style),使用里面的fileRead方法,进行读取,有两个参数一个是error,一个是data

Node的核心模块 :

      核心模块是由Node提供的一个个的具名的模块,他们都有自己特殊的名称标识,例如:

          Fs    --   文件操作的模块

          Http --- 网络服务的构建模块

          os   ---   操作系统的模块

          path   ---  操作处理路径的模块

所有的核心的模块在使用的时候都必须手动先使用,require 方法来加载,然后才可以使用,在使用的时候,把需要被外部访问的使用的成员手动的挂在到  ‘exports’ 接口对象中,然后在使用的时候,直接用require 这个模块,进行引用

Http:

    进行模块的安装:  npm instarll art-tempalte

     Require  进行引用

     IP : 地址定位计算机

     端口,定位具体的应用程序

     Content - type  服务器把每次相应的数据是什么内容都告诉客户端,然后进行响应

// 监听Server的reuuest 请求时间,设置请求处理函数
var http = require("http");
var server = http.createServer();
/*
* 监听Server的request请求时间,设置请求处理函数
*  请求
*     处理
*   响应
*   一个请求对应一个响应,如果在一个请求的过程中,已经结束响应了,则不能重复发送响应
*   没有请求就没有响应
* */
server.on("request",function (req,res) {
    var url = req.url;
    if (url === '/'){
        res.end("hello word");
    }else{
        res.end('404 Not Found');
    }
});
// 绑定端口号,启动服务
server.listen(3000,function () {
    console.log("runing ..")
});

Template:

     模板引擎最早就是诞生于服务器端,后来才发展到前端,在使用Template引擎的时候,需要使用require('art-template') ,参数中的art-template指的是下载包的名字

在使用第三方插件的时候,如果进行npm下载,引入 template : npm art-template

   Each:是art-template 的模板语法,专属的,只能在当前的模板引擎中使用

 {{  each 数组名称   }}

      <li> {{ $value }} </li> 

{{ /each }}   

在使用template 的时候,渲染的数据需要在scripte标签中。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<!-- 
        在浏览器中是进行引用
     -->
<script src="node_modules/art-template/lib/template-web.js"></script>
<script type="text/template" id="tpl">
    大家好:我叫{{ name }}
    我今年{{ age }}
    我来自{{ province }}
    我喜欢:{{ each hobbies }} {{ $value }} {{ /each }}
</script>
<script>
 template('tpl' ,{
     name:'jack',
     age:'14',
     province:'北京市',
     hobbies:['写代码','唱歌','打游戏']
 });
</script>
<body>
</body>

</html>

Url:

在node中,url是用来操作请求的路径的

咋使用的时候引入url路径即可,在解析的时候,第一个参数是解析的路径,如果第二个参数为true表示将请求的路径中的参数解析成对象,在对象中数据的key为query

如果第二个参数传递的为false ,表示会将请求的参数按照字符串进行解析

请求的路径会在 key 为 pathname中显示。

Module.exports 的使用:

 Node中的模块的作用域,默认文件中的所有的成员只有在当前模块有效,对于希望可以被其他模块访问的成员,我们就需要把这些公开的成员都挂载到Exprots接口,对于对象中就可以导出多个成员(导出多个成员,只能放在对象中),在使用的时候只能用exports点设置属性,如果给 Module.exprots  赋值,则会改变其指向,而此时赋值给Exporte的值在引用的时候,是获取不到的

Exports:

exports.a=123;
exports.b='hello';
exports = function () {
    console.log('ccc');
};

exports.d={
    foo:'bar'
};

 引用:

var app = require('./data');
console.log(app);
console.log(app.a);
console.log(app.d);

Module.exports 的使用:

var doo = 'bar';

function add(x,y) {
    return x+y;
}
function add1() {
    foor:"123";
    add:{
        str:"12"
    }
}
module.exports =add1;

Module.exports 的引用:

var app =require('./data');
console.log(app);
console.log(app.add1);
console.log(app.foor);

原理:在Node中Exports的底层,moudle.exports ,所以在使用的时候,需要使用Exports点属性赋值,不要直接赋值给Exports,否则会改变Exports的指向,Node在最后返回是Moudle.exports,如果Exports的指向修改之后,赋值给exports的值就不会被返回,如果在引用的时候,就不会获取到其对应的值。

缓存加载

       当文件加载一遍以后,当在使用到该文件的时候,不会再去加载一遍,而是直接从缓存中获取

Require

     Require 在加载模块的时候,会先查找package.json 文件,如果没有会默认找index.html如果连index.html都找不到,就会报错,如果找到package.josn ,会去查找key为main的键值对,该value 对应的就是你要引入的模块加载的文件,如果在引入的时候,没有就会报错

 在使用第三方插件的时候,会全部放在node_modules 这个文件中,如果在当前目录中没有找到该文件,则会去上一级目录中查找,如果没有找到会一直往上查找,如果一直没有找到则会报错,注意: 在查找的时候,不会去兄弟的子目录中查找,只会去上级中查找,不会出现多个node_modules文件。

模块的找机制:

   优先会从缓存中加载,如果没有会去核心模块中查询,会先在当前目录中查找node_modules文件夹,如果找不到会在上一级目录中查找(不会去兄弟的目录中查询),如果最后还是找不到,就会报错(Can not find module xxx),一个项目中有且仅有一个node_module,而且是存放在目录的根目录中。

Npm指令:

npm 用于引入第三方插件

 指令:

  1.  npm  init  : 用于生成package.json 的文件 会有向导,完成安装
  2. npm init -y  : 可以跳过想到, 直接完成安装
  3. npm install : 会把当前的package.json 中的 dependencies

                        

  1. npm install  包名  会把指定的包名的依赖完成安装
  2. npm install 包名 -- save   下载指定的模块包, 并且会向依赖的package.json 中添加依赖说明
  3. npm uninstall 包名   用于删除安装的第三方插件
  4. npm uninstall  包名 -- save    会将下载的包删除掉,并且把依赖也一起删除掉

解决Npm被拦截的问题:

    因为在操作npm的时候,操作的是国外的资源库,所以在使用的时候,只要连接到淘宝提供的镜像就可以了,

 在cmd中添加一行命令:npm config set registry https://registry.npm.taobao.org

    然后查看配置: npm config list

Package.json

 用于记录你当前的项目依赖于那些模块,该文件会在当前项目下创建,不需要你手动创建使用npm init (在命令行中),需要输入以下内容,会创建,但是在使用npm init 的时候,会有安装导向,如果 不想进行安装向导操作的话,直接执行 npm init -y,就会跳过安装向导。

npm  init   -y 

 在安装第三方插件的时候,需要在第三方包后面添加 -- save  此时才会再Package.json 文件中添加第三方的依赖,如果在以后,想要安装项目中用到的第三方的插件依赖使用  npm install   指令就可以完成项目依赖第三方插件的安装

   

Package.json 中会保存添加的依赖 

    

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值