• Nodejs初识


    1. 基础

    Node.js 就是运行在服务端的 JavaScript。

    Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。

    Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

    官网:https://nodejs.org

    NPM(Nodejs Package Manager)是随同nodejs一起安装的包管理工具,能解决nodejs包依赖。

    // first.js
    'use strict';
    
    console.log('Hello, world.');

    第一行总是写上'use strict';是因为我们总是以严格模式运行JavaScript代码,避免各种潜在陷阱。

    文件名必须以.js结尾,文件名只能是英文字母、数字和下划线的组合。

    如果在JavaScript文件开头写上'use strict';,那么Node在执行该JavaScript时将使用严格模式。但是,在服务器环境下,如果有很多JavaScript文件,每个文件都写上'use strict';很麻烦。我们可以给Nodejs传递一个参数,让Node直接为所有js文件开启严格模式:

    node --use_strict first.js

    2. 安装

    javascript在nodejs上运行,nodejs底层是C/C++,需要编译安装。

    可从官网直接下载编译好的二进制包:https://nodejs.org/en/download/ 或 http://nodejs.cn/download/。目前稳定版本是12.16.1。

    tar xvf node-v12.16.1-linux-x64.tar.xz -C /usr/local/bin
    在/etc/profile下添加PATH:
    export PATH=$PATH:/usr/loca/bin/node-v12.16.1-linux-x64/bin
    soure /etc/profile

    验证

    node -v
    v12.16.1
    npm -v
    6.13.4

    Node.js REPL

    Read Eval Print Loop:交互式解释器,提供nodejs的命令行交互环境。

    ctrl+c按下两次退出Node REPL。

    .help --列出使用命令

    .break -- 退出多行表达式

    .clear -- 退出多行表达式

    .save filename -- 保存当前node repl会话到指定文件

    .load filename -- 载入当前node repl会话内容

    3. 模块

    为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Node环境中,一个.js文件就称之为一个模块(module)。

    使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。

    要在模块中对外输出变量,用:

    module.exports = variable;
    module.exports = {
        foo: function(){return 'foo'; }
    };

    输出的变量可以是任意对象、函数、数组等。

    要引入其他模块输出的对象,用:

    var foo = require('other_module');

    引入的对象具体是什么,取决于引入模块输出的对象。

    如果只写模块名(不含路径),则node会依次在内置模块、全局模块和当前模块下查找。

    示例:

    // hello.js
    'use strict';
    
    var s = 'hello';
    
    function greet(name){
        console.log(s + ', '+name + '!');
    }
    
    module.exports = greet;
    
    //main.js
    var greet = require('./hello');
    
    var s = 'Wang';
    
    greet(s); // hello, Wang!

    4. NPM

    yarn也可以管理js包,参考:https://yarn.bootcss.com/docs/cli/config/,yarn在安全性和速度上较好。(npm insatll -g yarn)

    npm install express //本地安装
    npm install express -g //全局安装
    npm list -g
    npm list express
    npm uninstall express
    npm update express
    npm search express
    npm init  // 创建模块,生成模块package.json文件
    npm publish // 发布模块
    npm cache clear //清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人
    npm unpublish <package>@<version> //撤销发布自己发布过的某个版本代码。

    注:npm err! Error: connect ECONNREFUSED 127.0.0.1:8087出现此错误,则

    $npm config set proxy null

    本地安装

    将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。可以通过require()来引入本地安装的包。

    全局安装

    将安装包放到安装目录或/usr/local下,可以直接在命令行使用。

    淘宝NPM镜像

    淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

    你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

    $ npm install -g cnpm --registry=https://registry.npm.taobao.org

    这样就可以使用 cnpm 命令来安装模块了:

    $ cnpm install [name]

    参考:

    1. Node.js教程 https://www.runoob.com/nodejs/nodejs-tutorial.html

    2. 廖雪峰node.js https://www.liaoxuefeng.com/wiki/1022910821149312/1023025235359040

    3. 淘宝npm镜像帮助 https://developer.aliyun.com/mirror/NPM?from=tnpm

    4. npm和yarn的区别,我们该如何选择?

    5. https://yarn.bootcss.com/docs/cli/config/ yarn官网,使用文档

  • 相关阅读:
    WebGL 理论基础 二维缩放
    Cesium热力图实现 wenglabs
    颜色 学习法
    百度、高德、谷歌、火星、wgs84(2000)地图坐标相互转换的JS实现_一碗老面i的博客
    JS 并行计算
    AJAX 数据传输进度条设计与实现_qingyafan的博客
    WebGL 理论基础 二维平移
    3D热力图的简单实现
    WebGL 理论基础 二维矩阵
    Cesium imageryLayers,entity remove 删除,漏删问题_一碗老面i的博客
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/12437066.html
Copyright © 2020-2023  润新知