首页 > 编程语言 >Node.Js基础——安装及模块

Node.Js基础——安装及模块

时间:2024-08-26 18:22:00浏览次数:10  
标签:Node npm fs require Js json 模块 path

一、什么是Node.Js?

Node.js 是一个开源和跨平台的 JavaScript 运行时环境。

它让JavaScript可以脱离浏览器端,在服务器端运行,让javaScript可以开发后端程序,实现了大部分其他后端语言的功能。 Node.js 建立在 Google Chrome V8 JavaScript 引擎之上,主要用于创建网络服务器 - 但不仅限于此。


二、Node.Js的安装

1、下载地址及版本

可以去Node.Js官网下载:https://nodejs.org

安装目录使用英文路径

(LTS)代表长期稳定版;项目开发一般会选择长期稳定版,根据项目所需,自行选择版本。

(Current)代表最新版;可以自己体验新功能,但最新版可能会出现未知bug

在node的使用中,使用npm下载安装包;

初始化:npm init -y

npm install 或 npm i;下载所有包 ;下载指定的包: npm i 包名

代表本地安装,可以用命令npm root查看本地安装的包的安装路径。

npm install  -g                           ( 加-g代表全局安装;)

全局安装默认安装到:C:Users\用户目录\AppData\Roaming\npm\node_modules 目录下;

卸载:uninstall;包的引入:require()。

安装下载时常见错误:

例:出现‘npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to’错误;翻译为:‘npm犯错!代码证书已过期!证书已过期!‘请求’证书过期,

可以尝试在终端输入:

npm cache clean --force

npm config set strict-ssl false

之后再下载安装

检测是否安装成功:

如果安装成功后,在终端或命令行工具中使用:node -v; 和npm -v;命令可以查看版本号;


2、配置镜像站

npm下载包的时候从默认npm服务器下载,因为从国外服务器下载速度较慢,所以可以尝试手动设置npm地址为国内镜像地址例如淘宝等镜像地址,在终端输入命令:

淘宝镜像地址:npm config set registry http://registry.npmmirror.com/   或npm config set registry http://registry.npm.taobao.org/

阿里云镜像地址:npm config set registry https://npm.aliyun.com/

设置反回原镜像地址:npm config set registry https://registry.npmjs.org/

验证npm地址:npm config get registry

如果出现报错;可能是权限问题,可以尝试其他镜像地址,或者以管理员身份运行命令:sudo。


3、终端中常用的命令及快捷键

↑ 、↓:定位上一行或下一行的历史命令;

Ctrl+C:不再是复制,关闭当前node进程;

鼠标右键:变为复制粘贴,选中内容单击右键复制,再次右键粘贴

Tab:自动补全路径;(另外输入 cd .. 命令是返回上一层;cd ~ 命令是返回根目录;pwd 查看当前目录路径)

esc:清空当前行已输入命令

clear/cls:清除当前终端所有命令

ls:显示当前路径文件下所有内容


三、Node.Js的模块

node.js的模块可以分为:核心模块、自定义模块、第三方模块

核心模块:是由Node.js官方提供的内置模块

可以在官网的网页中查询node的内置模块及其功能:https://nodejs.cn/api

常用的模块例如:

fs模块:一般用于对文件的操作,如读取文件、写入文件、文件添加等。

path模块:一般用path处理路径,来解决路径问题。

querystring 模块:用于解析和序列化url查询字符串。

http模块:用来搭建服务器


1.fs模块

引入fs包:const fs = require('fs')

fs几个常用的方法:

读取文件(readFile)例:

读取:fs.readFile('地址')

const fs = require('fs');
fs.readFile('./json/index.json', (err, data) => {
    if (err) {
        console.log('读取失败');
        console.log(err);
    }
    else {
        console.log(data.toString());
    }
})

写入文件(writeFile)例:

写入:fs.writeFile('地址','写入的内容')

写入文件是覆盖写入,会删除文件之前的内容,写入新的。

const fs = require('fs');
fs.writeFile('./json/index.json','{"name":"333333333333"}', (err) => {
    if(err){
        console.log('写入失败');
        console.log(err);
    }
    else{
        console.log("写入成功");
        }
    })

拼接文件(appendFile) 例:

拼接:fs.appendFile('地址','拼接的内容')

拼接在所有内容的末尾

const fs = require('fs');
fs.appendFile('./json/index.json','{"b":"2222"}', (err) => {
if(err){
    console.log('拼接失败');
    console.log(err);
}
else{
    console.log("拼接成功");
    }
})

 

2.path模块:

引入path包:const path = require('path')

path几个常用的方法:

拼接路径path.join 例:

'__dirname'可以获取当前文件的文件夹所在的绝对路径,用path.join拼接上目标文件的相对路径,就可以得到目标文件的绝对路径。('__filename'可以获取当前文件所在的绝对路径)

path.join(__dirname, './json/index.json')
路径获取path.basename 

path.basename('希望获取的目标文件名')

path.basename('index.html');

 

3.querystring 模块:用于解析和序列化 URL 查询字符串。

引入qs包:const qs = require('querystring')

qs.stringify() : 将对象转化为url形式的字符串。
qs.parse() : 将字符串转化为对象。 

json 与它相似

json.stringify() 将转化为json格式的字符串。
json.parse() 将json字符串转化为对象。


 

4.http模块:

在终端node运行文件,返回打印的内容‘server run port 3000’,服务启动成功,可以去访问127.0.0.1:3000

//引入包
const http = require('http');
//搭建服务器
let app=http.createServer((req, res) => {
    console.log(req.connection.remoteAddress);
    res.write('响应还未结束')
   
    res.end('ok')
})
//启动服务器
app.listen(3000,() => {
    console.log('server run port 3000')  
})

 

第三方模块:第三方作者发布分享的模块

可以去https://www.npmjs.com

根据自己的需求查找,其他作者分享的包。


 

自定义模块:自己创建的模块

自己创建的模块,比如把某一功能分装到另一个js文件,这个js文件就算是自定义模块。

引入自定义模块,还是使用require()引入,但自定义模块不能只用文件名,需要加“./”或"../"表示地址

const express = require('express');
const app = express();
//引入
const userRouter = require('./router/user.js');
app.use('/user', userRouter);
app.listen(3000,()=>{
	console.log('express -- 3000端口 -- 已开放')
});

 导出使用exports

const express = require('express')
let router = express.Router()
router.get('/getnames', (req, res) => {
	res.send('user/getnames');
})
//导出
module.exports = router;

 

标签:Node,npm,fs,require,Js,json,模块,path
From: https://blog.csdn.net/weixin_68856615/article/details/141332842

相关文章

  • 基于nodejs+vue办公系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着企业规模的不断扩大与业务复杂性的增加,传统的办公模式已难以满足高效、便捷的管理需求。在现代企业中,办公系统的智能化与集成化成为提升工作效率、优化......
  • 基于nodejs+vue办公物资管理系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着企业规模的不断扩大与业务复杂度的提升,办公物资管理成为企业日常运营中不可或缺的一环。传统的手工记录与人工管理方式已难以满足现代企业对效率、准确......
  • 基于nodejs+vue办公室资产登记系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着现代企业规模的扩大与管理的精细化,办公室资产管理成为了一项日益复杂且重要的任务。传统的手工记录或简单的电子表格管理方式已难以满足高效、准确、实......
  • 前端模块自动导入的插件
    前言开发中通常会有很多导入语句,如何确保一些通用的api和hook无需每次手动导入即可使用。<scriptsetuplang="ts">import{ref,reactive}from"vue"import{useRoute,useRouter}from"vue-router"import{login}from"./api/user"constcount=r......
  • JS实现对象只复制已存在的属性
    JavaScript实现只复制已存在属性的笔记在JavaScript中,如果需将一个对象的属性复制到另一个对象中,但只复制目标对象中已经存在的属性,可以使用以下几种方法:1.手动遍历属性通过遍历source对象的属性,并判断target对象中是否存在对应属性,决定是否进行复制。constsource=......
  • net.sf.json.JSONObject 放入数组 坑
    publicstaticvoidmain(String[]args){com.google.gson.JsonObjectjsonObject=newcom.google.gson.JsonObject();jsonObject.addProperty("sss","[null]");com.google.gson.JsonArrayjsonArray=newcom.google.g......
  • HTML+CSS+JS 实现淘宝首页官网
    效果展示:完整代码:HTML部分:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport&q......
  • 蓝桥杯单片机入门(6)—LED灯模块
    这回我们讲,蓝桥杯中LED模块1.点亮一颗LED灯    在写代码之前我们必须要先明确自己的目的,然后根据需求去写对应的代码功能。首先我们要实现点亮一颗LED灯,在此之前我们要先了解一下LED灯的工作原理,    首先我们看一下,LED灯的原理图,图中写LED1的地方就是LED灯,......
  • 【JS逆向百例】携某 testab 参数补环境详解
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......
  • Node.js-身份证号实名认证-小程序实名认证接口集成方法
    使用身份证实名认证API之前,首先要确保已有一个可运行的开发环境,例如小程序或应用程序开发环境。这将是集成和测试API的基础。在应用中设计一个用户输入界面,用于用户输入姓名和身份证号码,同时设计提交按钮以触发验证流程。在选择合适的身份证实名认证API服务提供商时,应考......