初始node 三

这几天又开始疯狂学习了哈哈

1.each与forEach

each是art-template的模板语法

{{each 数组}}
<li>item</li>
{{/each}}

301 永久重定向 浏览器会记住

302 临时重定向 浏览器不记忆

2.模块系统

1.EcmaScript语言

2.核心模块

3.第三方模块

common.js模块规范 文件作用域 通信规则。在node中js还有模块。

3.加载与导出的使用规则

var foo = 'bar';
function add(x,y){
    return x+y;
}
exports.add = add;
// 如果一个模块需要直接导出一个成员,而非是一个对象
// module.exports = add
//1.使用reuire方法加载对象
// 执行被加载模块中代码
// 得到被加载模块中exports导出的接口对象
//2. 使用exports接口对象来导出模块中成员

// 可以node中每个模块中都有一个自己的module对象
// 在module对象中,有一个成员叫exports
// var module = {
//     exports:{

//     }
// }

// 无论谁来require我,在代码最后一句是
// return module.exports
// 因为在每次导出接口成员时,都需要把导出的module.exports.xxx=xxx
// 太麻烦,所以在node中module.exports = exports
// 所以exports是module.exports的一个引用
// 如果给exports重新赋值就不管用

// 如果是module.exports = 'hello';
// exports.foo = 'world';
// 给exports重新赋值会断开引用,同理给module.exports重新赋值也会断开引用

4.优先从缓存加载

初始node 三
由于已经从a中加载过了,所以不会从b中再次加载。就直接从缓存中加载,这样就避免了重复加载

5.require方法加载

require时,判断模块是哪种类型。如果是非路径形式的模块标识,就是其他系统模块

核心模块的本质也是文件,已经被编译到了二进制文件中,我们只需要按照名字来加载就可以了。

第三方模块,凡是第三方模块都必须通过npm来下载,使用的时候就可以通过require(‘包名’)的方式进行加载才可以使用

var template = require(‘art-template’)

先找到当前文件中的node_modules目录

然后找到node_modules/art-template

然后找到node_modules/art-template/package.json文件

然后找到node_modules/art-template/package.json的main属性

如果main入口文件没有写要做什么就默认加载index.js

如果所有条件都不会成立,就会进入上一级目录中node_modules目录查找,如果上上级没有还没有,继续向上找,值到找到磁盘根目录

6.包说明文件

// 包描述文件
//package.json保留了下载第三方包
// 包说明文件 描述项目依赖
// npm i art-tempalte --save
// 就是依赖,就是当前项目依赖了art-template
// npm init -y
// 自动创建文件

7.npm常用命令

// npm 下载
// npm 命令行工具 
// npm i -g npm 升级npm
// npm unnistall 包名 只删除,如果有依赖项,依然会保留
// npm unnistall 包名 --save 删除同时删除依赖

8.express安装

npm i express

const express = require('express');
// 创建server服务器 express()相当于创建了一个服务器
var app = express();
app.get('/',function(req,res){
    res.end('hello world');
})
app.get('/about',function(req,res){
    res.send('你好,我是express');
})
app.listen(3000,function(){
    console.log('app is runnig at 3000');
});
// 如何开放资源 :3000/public/main.js
// 指定公开静态开放目录 app.use('/public/',express.static('./public'));
// 就不用自己写了
app.use('/public/',express.static('./public/'));

9.大致了解express

在express参数中,可以直接通过req.query来获取参数,查询字符串

在expree中有如何使用模板引擎的更好方法,res.render(‘文件名’,{模板对象})

虽然有点累,但是大家加油!!!

上一篇:javascprit模块化整理笔记


下一篇:浅析常用的import被webpack编译之后