zoukankan      html  css  js  c++  java
  • NodeJS新建服务器以及CommonJS规范

    1、什么是node.js?
    (1)Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
    (2)Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统。
    (3)Node.js 可以解析JS代码(没有浏览器安全级别的限制)提供很多系统级别的API,如: - 文件的读写 fs - 进程的管理 procress - 网络通信 socket - ……

    2、为什么要学习nodejs?
    node-webkit、nodeOs、express、koa、Jade、EJS、Forever、PM2、Log.i、Grunt、Gulp、Webpack、Mocha、Karma

    3、node.js网站
    (1)工具:https://nodejs.org/en/
    (2)工具安装:https://www.runoob.com/nodejs/nodejs-install-setup.html
    (3)连接mongdob:https://www.runoob.com/nodejs/nodejs-mongodb.html
    (4)文档:http://nodejs.cn/

    4、npm指令
    (1)npm -V / npm --version 查询版本
    (2)npm install -g cnpm --registry=https://registry.npm.taobao.org 淘宝镜像
    (3)cnpm -V 查询版本
    (4)npm install supervisor -g 用于运行nodejs程序的管理程序
    (5)npm install nodemon -g 在开发node.js应用程序期间使用的简单监视器脚本。
    (6)npm install pm2 -g 具有内置负载均衡器的Node.JS应用程序的生产过程管理器。

    5、新建服务器server.js
    (1)node要导入http模块
    let http = require("http");
    (2)主机
    let hostname = "localhost";
    (3)端口
    let port = 3000;
    (4)创建服务器
    http.createServer((req, res) =>{
      if(req.url !== "/favicon.ico"){
      console.log(req.url);
      res.writeHead(200, {"Content-Type":"text/html;charset=utf-8"});
      res.write(`<h2>good good study</h2>`)
      res.write(`<h2>day day up</h2>`)
      res.write(`<h2>we are good boy</h2>`)
      res.end();
      }
    }).listen(port, hostname, () =>{
      console.log(`this server is running at http://${hostname}:${port}`);
    })
    (5)启动指令:node server.js/nodemon server.js

    6、什么叫模块化开发?
    复杂逻辑代码多的功能分而解之为独立高度封装的单元模块。

    7、CommonJs规范
    模块定义 define
    模块接口暴露 exports
    模块导入 require
    注意:
    (1)模块化开发 AMD异步模块定义(require.js) CMD同步模块定义(sea.js)
    (2) NodeJs && webpack 是 CommonJS 规范 的一种实现 ;CommonJS 规范 是 NodeJs && webpack 的 规范 和规则
    (3)所有的 js 文件 本身就是 一个模块
    (4)nodejs使用的是commonjs规范 注意: nodejs虽然原生支持es6 但它并不支持 es6的import规范

    8、接口暴露
    导入:let xx = require("xxx")
    导出:
    (1)一个文件内只能使用一次
    module.exports = Object | Function | Array | String | Number | Boolean
    (2)一个文件可以使用多次
    exports.xxx = Object | Function | Array | String | Number | Boolean
    下列写法不被允许 它会改变exports对象的引用导致程序运行出错
    exports = {
    xxx : "text"
    }

    举例说明:
    (1)module.exports = {};
    let arr = ["小红", "小黄", "小明"];
    let str = "我要飞的更高,飞的更高";
    let obj = {
      age : "18",
      name : "jack",
      content : "money"
    }
    function setUsername(username){
      return `${username} 说:every day day up`;
    }
    module.exports = {
    arr,
    str,
    obj,
    setUsername
    }
    (2)exports key = value;
    const getSomeone=(someone)=>{
      return `<h3>${someone} word hard for 12000 RMB </h3>`;
    }
    exports.getSomeone =getSomeone;
    exports.word = `<h3>1807 你们努力了吗</h3>`;

    es6的import规范
    方式1
    导入:
    import XXX from "xxx"
    导出:
    export default xxx
    该种方式一个文件内只能使用一次

    方式2
    导入:
    import {XXX} from "xxx"
    import {XXX as YYY} from "xxx" //将模块XXX给个别名为YYY
    导出:
    export let | const | var | function | class | interface XXX = ....
    或者
    let(可以是其他声明符) XXX = ....
    export {XXX}

    上述导出方式可以在同一个文件内使用多次
    举例说明:
    (1)export default
    export default{
      say(){}
    }

    (2)export default function say(){

    }

    可以参考网站:https://www.cnblogs.com/wisewrong/p/7241689.html

  • 相关阅读:
    【待补充】Spark 集群模式 && Spark Job 部署模式
    Spark 集群管理命令
    Spark job 部署模式
    [Spark Core] Spark 核心组件
    [Spark RDD_1] RDD 基本概念
    【读书笔记】《天才在左 疯子在右》
    [Spark Core] Spark 使用第三方 Jar 包的方式
    [Spark Core] 在 Spark 集群上运行程序
    【待补充】[Spark Core] Spark 实现标签生成
    Spark 集群搭建
  • 原文地址:https://www.cnblogs.com/lishixiang-007/p/11273541.html
Copyright © 2011-2022 走看看