Node.js教程学习笔记

本文介绍Node.js的安装配置方法,包括Windows和Linux环境下的操作步骤。此外还详细讲解了如何使用Node.js创建HTTP服务器,以及npm的基本用法,包括模块安装、更新、卸载等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Node.js教程-菜鸟教程

安装与配置

Windows
  • 下载node.js,建议选择左侧稳定版
  • 运行下载完成的.msi文件进行自动安装
  • 安装完成后少数情况下需要自行设置环境变量,把安装目录加入PATH即可
  • 打开cmd/git 运行 node -v以及 npm -v检查安装情况
配置与管理
npm更新
//Windows
npm install npm -g  

//Linux
sudo npm install npm -g

Node.js应用

Node.js 不仅仅是一个应用,同时也是整个 HTTP 服务器

组成部分
引入reqiured模块

使用require指令载入/请求Node.js模块

//使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http
var http = require("http");
创建服务器 & 接收请求与响应

服务器可以监听客户端的请求,类似于 Apache、Nginx 等 HTTP 服务器

  • 使用 http.createServer() 方法创建服务器
  • 使用 listen 方法绑定 8888 端口
  • 函数通过 request, response 参数来接收和响应数据
/*server.js*/

var http = require('http');

//创建服务器
http.createServer(function (request, response) {

    // 发送 HTTP 头部 
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});

    // 发送响应数据 "Hello World"
    response.end('Hello World\n');
}).listen(8888);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

以上代码创建了一个可工作的HTTP服务器,使用node指令运行该应用即可完成创建

node server.js

npm

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用
使用npm安装模块
本地安装
  • 将安装包放在 ./node_modules 下,如果没有 node_modules 目录,会在当前目录下生成 node_modules 目录
  • 可以通过 require(包名) 直接引入本地安装的包
//命令行,本地安装express包
npm install express

//Node.js代码,请求express包并赋值给实例express
var express = require('express');
全局安装
  • 将安装包放在 /usr/local 下或者你 node 的安装目录
  • 可以直接在命令行里使用
npm install express -g 
错误处理&安装管理
安装错误

如果出现以下错误

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 

解决办法:

$ npm config set proxy null
查看安装信息
$ npm list -g #全局
$ npm更新 list grunt  #查看grunt的版本号 
搜索&卸载&更新
$ npm search express

$ npm uninstall express #卸载express
$ npm ls                #查看/node_modules/ 目录下的包

$ npm update express    #更新express
创建

创建模块必须有package.json文件定义包的属性

$ npm init #根据提示创建package.json文件
$ npm adduser #在npm资源库中注册用户(用邮箱注册)
$ npm publish #发布
*package.json
  • package.json 位于模块的目录下,用于定义包的属性
  • 可使用NPM生成
    以exprees包内package.json文件(node_modules/express/package.json)为例
{
  "name": "express",
  "description": "Fast, unopinionated, minimalist web framework",
  "version": "4.13.3",
  "author": {
    "name": "TJ Holowaychuk",
    "email": "tj@vision-media.ca"
  },
  "contributors": [
    {
      "name": "Aaron Heckmann",
      "email": "aaron.heckmann+github@gmail.com"
    },

    ......


    {
      "name": "rfeng",
      "email": "enjoyjava@gmail.com"
    },
    {
      "name": "aredridel",
      "email": "aredridel@dinhe.net"
    },
    {
      "name": "strongloop",
      "email": "callback@strongloop.com"
    },
    {
      "name": "defunctzombie",
      "email": "shtylman@gmail.com"
    }
  ],
  "dist": {
    "shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3",
    "tarball": "http://registry.npmjs.org/express/-/express-4.13.3.tgz"
  },
  "directories": {},
  "_resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz",
  "readme": "ERROR: No README data found!"
}
npm常用命令
  • 在package.json所在目录下使用npm install . -g可先在本地安装当前命令行程序,可用于发布前的本地测试
  • 使用npm unpublish @可以撤销发布自己发布过的某个版本代码
淘宝npm镜像

国内直接使用 npm 的官方镜像多数情况是非常慢的,可使用淘宝npm镜像代替

//代替默认npm
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
$ cnpm install [name] #使用 cnpm 命令安装模块

Node.js REPL(交互式解释器)

Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,
类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应\

REPL命令
  • ctrl + c - 退出当前终端
  • ctrl + c 按下两次 - 退出 Node REPL
  • ctrl + d - 退出 Node REPL
  • 向上/向下 键 - 查看输入的历史命令
  • tab 键 - 列出当前命令
  • .help - 列出使用命令
  • .break - 退出多行表达式
  • .clear - 退出多行表达式
  • .save filename - 保存当前的 Node REPL 会话到指定文件
  • .load filename - 载入当前 Node REPL 会话的文件内容

Node.js回调函数

回调函数在完成任务后就会被调用,
Node 使用了大量的回调函数,
Node 所有 API 都支持回调函数
回调函数一般作为函数的最后一个参数出现

//阻塞代码
var fs = require("fs");

var data = fs.readFileSync('input.txt');

console.log(data.toString()); //先输出
console.log("程序执行结束!");

//非阻塞(回调函数)
var fs = require("fs");

fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());  //后输出
});  

console.log("程序执行结束!");  //先输出
资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 在 Linux 系统中,查找域名或主机名对应的 IP 地址是网络管理中的一项基础且关键任务,对于排查网络故障、调试网络问题以及监控网络服务是否正常运行等场景都非常重要。本文将介绍五种在 Linux 终端查询域名 IP 地址的方法。 首先,dig 命令(全称 Domain Information Groper)是一个功能强大的 DNS 查询工具,能够向 DNS 服务器发送查询请求并获取详细的响应信息。如果需要查询单个域名的 IP 地址,可以使用命令 dig 2daygeek.com +short 。此外,还可以通过编写 bash 脚本,将包含域名的文本文件中的域名逐个读取,然后利用 dig 命令进行查询,从而实现批量查询域名 IP 地址的功能。 其次,host 命令是一个简单易用的 DNS 查询工具,主要用于将域名解析为 IP 地址。要获取某个域名的 IP 地址,直接使用 host 2daygeek.com 即可。如果只想显示 IP 地址部分,可以通过管道结合 grep 和 sed 命令来实现,例如:host 2daygeek.com | grep "has address" | sed s/has address/-/g 。 再者,nslookup 命令也是一种常用的 DNS 查询工具,它支持交互式查询 DNS 信息。通过 nslookup 2daygeek.com 可以查询域名的 IP 地址。若要以非交互式的方式只显示 IP 地址,可以使用命令 nslookup 2daygeek.com | awk /^Address:/ {print $2} 。 另外,fping 命令与传统的 ping 命令不同,它不会直接进行 DNS 查询,而是通过发送 ICMP Echo Request(pi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值