从零开始一步一步学习 node.js

  • 知识要点
    • Node.js安装及使用
    • 通过Node.js搭建服务器
    • 模块化及自定义模块
    • 内置模块fs的使用
    • buffer及stream

Node.js介绍

Node.js 诞生于2009年,Node.js采用C++语言编写而成,是一个Javascript的运行环境。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 ,让JavaScript的运行脱离浏览器端,可以使用JavaScript语言 书写服务器端代码。

1. 安装Node.js

Node.js官网下载稳定版本,node偶数版本为稳定版本,奇数版本为非稳定版本。

  • mac直接安装 或者brew来安装
  • 安装完Node.js会自动安装NPM(Node Package Manager):包管理工具;
  • 通过指令 node -v 来查看是否安装完成和查看node版本号;npm -v 来查看npm版本。

1.1 使用Node.js实现一个服务器

//引入http模块
let http = require("http");
//创建一个服务器
let serve = http.createServer((req,res)=>{
   
    console.log("hello");
    res.end("hello world");
})
//设置端口号
serve.listen(3000);

1.2 访问服务器

  • 本机访问
//第一种方式
localhost:端口号

//第二种方式
127.0.0.1:端口号
  • 外部访问
//首先通过命令行获取本机的ip地址
ipconfig

//通过ip地址访问
IP地址:端口号

1.3 更改服务器内容

//服务器更改内容后需要重启服务器才能刷新
//第一步:快捷键ctrl+c,重启服务器
//第二部:重新输入命令运行node.js,比如node http.js

1.4 安装nodemon

//全局安装nodemon
npm i nodemon -g

//解决系统禁止运行脚本

1.管理员身份打开powerShell

2.输入set-ExecutionPolicy RemoteSigned

   选择a或者y

3.如果还是不行,根据提示

输入Set-ExecutionPolicy -Scope CurrentUser运行即可,之后输入RemoteSigned回车运行即可,再次执行nodemon,发现成功了
  • Google Chrome 默认非安全端口列表,尽量避免以下端口。

    1, // tcpmux
    7, // echo
    9, // discard
    11, // systat
    13, // daytime
    15, // netstat
    17, // qotd
    19, // chargen
    20, // ftp data
    21, // ftp access
    22, // ssh
    23, // telnet
    25, // smtp
    37, // time
    42, // name
    43, // nicname
    53, // domain
    77, // priv-rjs
    79, // finger
    87, // ttylink
    95, // supdup
    101, // hostriame
    102, // iso-tsap
    103, // gppitnp
    104, // acr-nema
    109, // pop2
    110, // pop3
    111, // sunrpc
    113, // auth
    115, // sftp
    117, // uucp-path
    119, // nntp
    123, // NTP
    135, // loc-srv /epmap
    139, // netbios
    143, // imap2
    179, // BGP
    389, // ldap
    465, // smtp+ssl
    512, // print / exec
    513, // login
    514, // shell
    515, // printer
    526, // tempo
    530, // courier
    531, // chat
    532, // netnews
    540, // uucp
    556, // remotefs
    563, // nntp+ssl
    587, // stmp?
    601, // ??
    636, // ldap+ssl
    993, // ldap+ssl
    995, // pop3+ssl
    2049, // nfs
    3659, // apple-sasl / PasswordServer
    4045, // lockd
    6000, // X11
    6665, // Alternate IRC [Apple addition]
    6666, // Alternate IRC [Apple addition]
    6667, // Standard IRC [Apple addition]
    6668, // Alternate IRC [Apple addition]

    6669, // Alternate IRC [Apple addition]

2. 模块化

一、为什么会有模块化

  • 在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即,如今随着前端代码日益膨胀

    这时候JavaScript作为嵌入式的脚本语言的定位动摇了,JavaScript却没有为组织代码提供任何明显帮助,JavaScript极其简单的代码组织规范不足以驾驭如此庞大规模的代码;

二、Node.js中的模块化 commonjs规范

  • CommonJS就是为JS的表现来制定规范,因为js没有模块的功能所以CommonJS应运而生,它希望js可以在任何地方运行,不只是浏览器中。

2.1 自定义模块

2.1.1 引入模块
  • 引入——文件形式模块

    home.js执行文件

    //通过require来引入
    require("./aModule"); //注意一定要有"./",文件后缀可加可不加。
    

    amodule.js文件

    console.log("我是被引的amodule.js模块");
    
  • 引入——文件夹形式模块

    • home.js执行文件
    require("./aModuleDir"); //必须加"./"
    

    ​ 会自动查找aModuleDir文件夹下的index.js文件执行

    console.log("我是aModule模块文件夹里的index.js");
    
    • 当然也可以配置默认启动文件,在文件夹内新建package.json来指定执行文件
    {
         
      "name":"aModule",
      "version":"1.0.0",
      "main":"test.js"     //test.js取代index.js成为默认启动文件
    }
    
2.1.2 导出模块
  • 自定义模块的按需导出

第一种导出方式:通过 module.exports 导出; ___dirname , __filename

module.exports = {
   
    a:"我是a的值",
    b(){
   
        console.log("我是导出的b函数");
    }
}

引入导出文件

let mymodule = require("bModule");
console.log(
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值