首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

十分钟带你入门Node.js 开发

  • 25-03-05 12:41
  • 2969
  • 8348
blog.csdn.net

在这里插入图片描述

概览

Node.js是一个免费、开源、跨平台的Javascript运行环境,它可以让我们创建Web服务器、web应用、命令行工具以及脚本开发等。Node.js的出现极大地推动了Javascript的发展,使它不仅仅是一种只能局限于浏览器中运行的Web脚本语言。作为当前大前端时代中的web开发人员,我们由必要去学习一下Node.js,本文也从零开始讲解Node.js的安装以及常见用法,目的是引导初学者特别是零基础的读者更快地上手Node.js开发。

安装Node.js

  1. Windows用户
winget install Schniz.fnm

fnm use --install-if-missing 20
  • 1
  • 2
  • 3
  1. Linux或MacOS用户,使用nvm(Node Version Manager)安装
jagitch@c8021a3112cf:~$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

=> Downloading nvm as script to '/home/jagitch/.nvm'

=> Appending nvm source string to /home/jagitch/.profile
=> bash_completion source string already in /home/jagitch/.profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

jagitch@c8021a3112cf:~$ source /home/jagitch/.profile

jagitch@c8021a3112cf:~$ nvm install 20
Downloading and installing node v20.14.0...
Downloading https://nodejs.org/dist/v20.14.0/node-v20.14.0-linux-x64.tar.gz...
######################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v20.14.0 (npm v10.7.0)
Creating default alias: default -> 20 (-> v20.14.0)

jagitch@c8021a3112cf:~$ node -v
v20.14.0

jagitch@c8021a3112cf:~$ npm -v
10.7.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  1. jagitch@c8021a3112cf:~$后面才是命令, 其他行都是命令的输出
  1. 第二条命令是source /home/jagitch/.profile,作用是令nvm可以使用,否则是找不到nvm命令的,除非重新打开一个终端,source命令后面的路径是=> Appending nvm source string to /home/jagitch/.profile这行安装日志标明的。
  1. 如果上述方式因为网络问题安装不了,可以去Node.js官网下载二进制安装包进行安装https://nodejs.org/en/download/prebuilt-installer

NodeJS第一个程序Hello World

使用REPL运行Javascript

Javascript和Python一样,都是一门解释型的语言,因此Node.js给Javascript提供了一个REPL运行环境,我们可以直接使用node命令进入REPL,然后就可以运行Javascript语句了。

jagitch@c8021a3112cf:~$ node
Welcome to Node.js v20.14.0.
Type ".help" for more information.
> console.log("Hello World")
Hello World
undefined
> a = 1 + 2
3
> .exit
jagitch@c8021a3112cf:~$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
使用文件运行Javascript
jagitch@c8021a3112cf:~$ cat > main.js <<'EOF'
console.log("Hello World")
EOF
jagitch@c8021a3112cf:~$ cat main.js
console.log("Hello World")
jagitch@c8021a3112cf:~$ node main.js
Hello World
jagitch@c8021a3112cf:~$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

注意,cat这条命令是一条多行命令,到EOF为止,作用是向main.js输入console.log("Hello World")。我们可以使用node后接js文件去运行Javasript的源代码文件。

Node.js的包管理工具npm

现在的Node.js社区异常的火爆,npmjs这个web平台集结了众多开源贡献者开发的很多使用的Javascript包,我们可以直接使用npm来安装这些包,就可以快速在自己的项目中使用它,极大地提高了我们的开发效率。 我们可以去npm的官网https://www.npmjs.com查找符合我们条件的包,例如我们需要进行日期格式化,如果自己写一个相关的函数,既费时也增加了一定的后期维护工作,这时我们就可以使用npm去找合适的开源包直接使用即可,避免非业务相关的基础模块重复造轮子。下面是具体步骤

  1. 打开npm官网,搜索date

在这里插入图片描述

  1. 可以看到,我们搜索到了很多与日相关的Javascript开源包,我们一般找排名考前的,然后评估它是否满足我们的需求,可以进去看他们的下载数量判断流行程度,使用人数越多,就更稳定,因为经过了更多人的使用测试反馈,使用人数越多的包的作者的创作力度也更大;接着判断它最近的更新日期,如果很久不更新的可能会导致它的功能过时;接着我们要看它的官网文档,是否能满足我们的需求,这是最重要的一点。

在这里插入图片描述

  1. 结合上面介绍的技巧,最终我选择了搜索排名第二的 date-fns包,它的周下载量达到了惊人的1884 5853次,千万次的周下载量足以为它的作者竖起一个大大的?。它的文档也满足我们的要求,如
import { compareAsc, format } from "date-fns";

format(new Date(2014, 1, 11), "yyyy-MM-dd");
//=> '2014-02-11'

const dates = [
  new Date(1995, 6, 2),
  new Date(1987, 1, 11),
  new Date(1989, 6, 10),
];
dates.sort(compareAsc);
//=> [
//   Wed Feb 11 1987 00:00:00,
//   Mon Jul 10 1989 00:00:00,
//   Sun Jul 02 1995 00:00:00
// ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  1. 确定好包后,使用npm安装date-fns
npm install date-fns
  • 1
  1. 好了,Node.js的包管理工具npm就介绍到这里了,如还有问题的,欢迎评论区留言。

一个完整的例子

接下来,我将使用date-fns来开发一个程序来演示Node.js项目搭建于开发,该程序计算女朋友的生日还有多少天

  1. 创建一个目录作为项目目录,管理项目所有文件(源代码文件、文档等)
jagitch@c8021a3112cf:~$ mkdir birthday && cd birthday
  • 1
  1. 使用npm安装date-fns
jagitch@c8021a3112cf:birthday$ npm install date-fns

jagitch@c8021a3112cf:birthday$ ls
node_modules  package-lock.json  package.json
  • 1
  • 2
  • 3
  • 4

执行npm install date-fns命令后,会在当前目录创建package.json和package-lock.json文件以及node_modules文件夹,我们安装的包都写入了配置文件package.json中,date-fns包安装在node_modules文件夹中。

  1. 创建main.js,输入以下代码
const { differenceInCalendarDays: diffDays, parse } = require("date-fns");
const readline = require("readline")

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

function calBirthday() {
    rl.question("请输入你女朋友的生日:", (birthday) => {
        year = new Date().getFullYear()
        var answer = ""
        const days = diffDays(
            parse(year + "-" + birthday, "yyyy-M-d", new Date()),
            new Date()
        )

        if (days > 0) {
            answer = `你女朋友的生日还有${days}天,千万要记住哦!`
        } else if (days == 0) {
            answer = `今天就是你女朋友的生日,赶紧去买束花吧!`
        } else if (days < 0) {
            const days2 = diffDays(
                parse((year + 1) + "-" + birthday, "yyyy-M-d", new Date()),
                new Date()
            )
            answer = `糟糕,今年你错过了你女朋友的生日,已经错过${(-days)}天了,下一个生日还有${days2}天`
        } else {
            answer = "请输入正确的生日(如05-20)"
            console.log(answer)
            calBirthday()
            return
        }
        console.log(answer)
        rl.close()
    });
}
calBirthday()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  1. 运行程序
jagitch@c8021a3112cf:birthday$ node main.js
请输入你女朋友的生日:5-32
请输入正确的生日(如05-20)
请输入你女朋友的生日:15-23
请输入正确的生日(如05-20)
请输入你女朋友的生日:hello
请输入正确的生日(如05-20)
请输入你女朋友的生日:5-28
糟糕,今年你错过了你女朋友的生日,已经错过5天了,下一个生日还有360天

jagitch@c8021a3112cf:birthday$ node main.js
请输入你女朋友的生日:6-2
今天就是你女朋友的生日,赶紧去买束花吧!

jagitch@c8021a3112cf:birthday$ node main.js
请输入你女朋友的生日:10-20
你女朋友的生日还有140天,千万要记住哦!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  1. 从运行结果可以看出,date-fns包帮我们实现了日期正确性验证,例如5月32日它会识别出来,并返回一个非数值类型的值,如果这些功能让我们自己去实现的话代码量就不只有这么多了,要浪费很多精力去造轮子,而且还不一定能造得这么好。

总结

本文详细的介绍了Node.js的安装与使用以及如何使用Node.js的包管理工具,最后使用一个计算生日还有多久的js实用程序结束本文。有很多初学者分不清Node.js和js的区别,其实只要记住一句话就可以了,js是一种编程语言,Node.js是js的运行环境就足够了,题外话,还有一个EMCAScript,它是Javascript语言的一个语言规范。

推荐阅读

1. 十分钟带你入门mariadb数据库开发

2. 十分钟带你入门PostgreSQL数据库开发

3. 十分钟带你入门API接口调试神器Postman

4. 使用树梅派搭建Golang、Python、NodeJs的开发服务器

文章知识点与官方知识档案匹配,可进一步学习相关知识
Vue入门技能树Node.js和npmNode安装与配置42906 人正在系统学习中
注:本文转载自blog.csdn.net的gopyer的文章"https://blog.csdn.net/fuxily/article/details/139398080"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top