Node开发


Node开发概述

  • 学习服务端开发能够和后端程序员更加紧密的配合;
  • 网站业务逻辑前置,学习前端技术需要后端技术支持;
  • 拓展知识视野,能够站在更高的角度审视项目。

Node是基于Chrome V8引擎的JavaScript代码运行环境

所有的EMCAScript语法在Node中均可使用

Node.js模块化开发

JavaScript在使用中存在两大问题,文件依赖和命名冲突;

Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下外部无法获取;模块内部可以使用==exports==对象进行成员导出,使用==require==方法导入其他模块。

// a.js
let ver = 1.0;
const sayhi = name => `hello,$(name)`;
exports.ver = ver;
exports.sayhi = sayhi;

// b.js
let a = require('./b.js');

expors是module.exports的别名(地址引用关系),当expors对象和module.exports对象指向的不是同一个对象时,以module.exports为准

系统模块

系统模块是指Node运行环境提供的API。

系统模块fs文件操作:

  • 读取文件内容 fs.readFile('文件路径',['文件编码'],callback);

    fs.readFile('base.css','utf-8',(err,doc) => {
        // 如果文件读取发生错误,参数err的值为错误对象,否则err的值为null. doc参数为文件内容
        if(err == null){
            console.log(doc);
        }
    });
  • 写入文件内容 fs.writeFile('文件路径','数据',callback);

    const content = '<h2>hello</h2>';
    fs.readFile('index.html',content,err => {
        if(err != null){
            console.log(err);
            return;
        }
        console.log('文件写入成功');
    });

    系统模块path路径操作:

path.join(‘path1’,’path2’,…)

第三方模块

别人写好的,具有特定功能的,我们能直接使用的模块即第三方模块。通常有JS文件和命令行工具两种形式。

  • modemon 程序修改后自动重新执行程序

Gulp 基于node平台开发前端构建工具

  • HTML,CSS,JS文件压缩合并
  • 语法转换
  • 公共文件抽离
  • 修改文件浏览器自动刷新

Gulp 的使用

  1. 使用npm install gulp下载库文件
  2. 在项目根目录下建立gulpfile.js文件
  3. 重构项目的文件夹结构 src目录放置源代码文件 dist目录放置构建后文件
  4. 在gulpfile.js文件中编写任务
  5. 在命令行工具中执行gulp任务

Gulp 提供的方法

  • gulp.src(): 获取任务中要处理的文件
  • gulp.dest(): 输出文件
  • gulp.task(): 建立gulp任务
  • gulp.watch(): 监控文件的变化

Gulp插件

  • gulp-htmlmin:html文件压缩
  • gulp-csso:压缩css
  • gulp-babel:JavaScript语法转化
  • gulp-less:less语法转化
  • gulp-uglify:压缩混淆JavaScript
  • gulp-file-include:公共文件包含
  • browsersync:浏览器实时同步

添加程序

package.json文件的作用

项目描述文件,记录了当前项目信息,例如项目名称、版本、当前项目依赖了哪些第三方模块

Node.js中模块加载的机制

模块查找规则——有路径

  1. require方法根据模块路径查找模块,如果是完整路径,直接引入模块
  2. 如果模块后缀省略,先找同名JS文件再找同名文件夹
  3. 如果找到了同名文件夹,找文件夹中的index.js
  4. 如果文件夹中没有index.js就会去当前文件夹中的package.js查找main选项中的入口文件
  5. 如果指定的入口文件不存在就会报错

模块查找规则——没有路径

  1. Node.js会假设它是系统模块
  2. Node.js会去node_modules文件夹中
  3. 首先看是否有该名字的JS文件
  4. 再看是否有该名字的文件夹
  5. 如果是文件夹看里面是否有index.js
  6. 如果没有index.js就会去当前文件夹中的package.js查找main选项中的入口文件
  7. 如果指定的入口文件不存在就会报错

URL

统一资源定位符

传输协议://服务器IP或域名:端口/资源所在位置标识

创建web服务器

//引入系统模块
const http = require('http');
// 创建web服务器
const app = http.createServer();
// 当客服端发送请求的时候
app.on('request',(req,res)=>{
    // 响应
    res.end('<h1>hello,world</h1>');
});
// 监听端口
app.listen(3000);
console.log('服务器已启动');

文章作者: linxueya
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 linxueya !
评论
  目录
喜迎
春节