当前位置: 首页 > news >正文

黄石网站设计制作公司培训教育机构

黄石网站设计制作公司,培训教育机构,网站建设公司做销售前景好不好,湘潭市 网站建设Node.js系统模块 续上一篇文章第三章认识Node.js模块化开发-CSDN博客,这次继续来认识和总结以下node的常用模块开发 Node.js系统模块是指Node.js自带的一些模块,这些模块可以直接在Node.js中使用,无需安装其他包。以下是常用的Node.js系统模块…

Node.js系统模块

续上一篇文章第三章认识Node.js模块化开发-CSDN博客,这次继续来认识和总结以下node的常用模块开发

Node.js系统模块是指Node.js自带的一些模块,这些模块可以直接在Node.js中使用,无需安装其他包。以下是常用的Node.js系统模块:

  1. fs模块:用于处理文件系统。

  2. http模块:用于创建HTTP服务器和客户端。

  3. url模块:用于解析URL和格式化URL。

  4. path模块:用于处理文件路径。

  5. os模块:用于获取服务器的操作系统相关信息。

  6. process模块:用于与当前进程进行交互。

  7. events模块:用于创建和处理事件。

  8. buffer模块:用于处理二进制数据。

  9. stream模块:用于处理大量数据的输入输出流。

  10. crypto模块:用于加密和解密数据。

  11. zlib模块:用于压缩和解压缩数据。

  12. assert模块:用于编写测试用例。

以上模块均可以通过 require() 函数进行引入使用。

Node.js第三方模块

Node.js第三方模块是指由其他开发者或组织编写的、不隶属于Node.js官方维护的模块,这些模块通常都发布在npm(Node Package Manager)上,可以通过npm命令进行安装和使用。

命令格式:npm install 模块名称

常见的Node.js第三方模块有:

  1. Express:一个流行的Web应用程序框架,提供了简单和灵活的API,可以快速搭建Web应用程序和API。

  2. Socket.IO:一个实时的双向通信库,支持Websocket协议和轮询方式,可以实现实时聊天、在线游戏等功能。

  3. Sequelize:一个ORM框架,支持多种数据库,可以方便地进行数据库操作。

  4. Async:用于处理异步操作的工具库,提供了多种函数,可以方便地处理异步流程和控制流。

  5. Nodemailer:一个邮件发送库,可以方便地发送电子邮件。

  6. Moment:一个处理日期和时间的工具库,提供了方便的API,可以方便地进行时间处理。

  7. Lodash:一个JS工具库,提供了多种常用函数,可以方便地进行数组、字符串、对象等操作。

综上所述,Node.js第三方模块可以极大地丰富Node.js的功能和扩展性,提供了更多的选择和便利,可以大大提高Node.js开发效率和编程质量。

Node.js常用开发工具

nodemon工具

nodemon是一个非常实用的Node.js工具,它可以帮助我们在开发过程中自动重启Node.js应用程序,而不需要手动重启。nodemon会监视文件的变化,并自动重新启动Node.js应用程序,从而使开发过程更高效,减少手动重启的麻烦。

要使用nodemon安装它非常简单,只需要在命令行中输入以下命令即可:

npm install -g nodemon

安装完毕后,在命令行中使用nodemon来启动应用程序,就可以自动重启了。例如:

nodemon app.js

这条命令将启动一个名为app.js的Node.js应用程序,并监听该文件的变化,如果文件发生更改,它将自动重新启动。

nrm工具

nrm是一个npm registry manager,它可以帮助我们快速地切换npm镜像源,以加快我们在使用npm工具时的下载速度。在国内由于网络限制,使用默认的npm镜像源会非常慢,因此我们需要使用nrm来快速切换到国内镜像源,例如cnpmjs等。

要使用nrm,需要先全局安装它:

npm install -g nrm

安装完成后,可以使用以下命令查看可用的镜像源:

nrm ls

使用以下命令来切换到指定的镜像源:

nrm use <mirror-name>

例如,要切换到cnpmjs镜像源,可以使用以下命令:

nrm use cnpm
gulp工具

Gulp是一款基于Node.js的自动化构建工具,它可以自动完成开发过程中的一些重复、耗时任务,如代码压缩、文件合并、自动刷新浏览器等,从而提高项目开发效率。

使用Gulp需要先全局安装它:

npm install -g gulp

安装完成后,在项目中安装gulp及相关插件:

npm install --save-dev gulp gulp-concat gulp-uglify gulp-rename

其中,gulp-concat用于合并文件,gulp-uglify用于压缩JavaScript代码,gulp-rename用于重命名文件。

在gulpfile.js文件中编写任务:

const gulp = require('gulp');
const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
const rename = require('gulp-rename');// 合并、压缩、重命名JS文件
gulp.task('js', function() {return gulp.src('src/js/*.js').pipe(concat('all.js')).pipe(gulp.dest('dist/js')).pipe(uglify()).pipe(rename({ suffix: '.min' })).pipe(gulp.dest('dist/js'));
});// 默认任务
gulp.task('default', gulp.series('js'));

在命令行中执行gulp任务:

gulp

执行完毕后,即可在dist/js目录中生成合并、压缩、重命名后的JS文件。

Node.js模块加载机制

Node.js采用的是CommonJS模块规范,模块是Node.js中最重要的概念之一。在Node.js中,每个文件都被视为一个独立的模块,每个模块都有自己的作用域,也就是说,在一个模块内定义的变量、函数等只是在该模块内有效,而在其他模块内无法访问。

Node.js模块加载机制的实现基于以下两个原则:

  1. 模块第一次加载时会被缓存,以后再次加载时直接从缓存中读取,不会重复执行。

  2. 模块加载的顺序是按照其被引用的顺序来执行的。

在Node.js中,使用require函数来加载模块。require函数会根据传入的参数,去寻找该模块,并将其返回。在寻找模块的过程中,Node.js会按照以下规则来匹配模块:

  1. 如果参数是一个绝对路径,Node.js会根据该路径直接加载对应的模块。

  2. 如果参数是一个相对路径,Node.js会将其转化为绝对路径后再加载对应的模块。在转换为绝对路径时,会以调用require函数的模块所在的目录作为基准路径。

  3. 如果参数是一个模块名,Node.js会按照以下顺序依次尝试:

    a. 将模块名作为文件名来查找对应的模块文件(比如,模块名为“./hello”,则会查找当前目录下的hello.js文件)。

    b. 将模块名作为目录名来查找对应的模块目录(比如,模块名为“./foo”,则会查找当前目录下的foo目录)。

    c. 在上一步找到的目录中查找package.json文件,读取其中的main字段,然后根据该字段所指定的文件名来加载对应的模块文件。

    d. 如果上述步骤都失败了,就会将模块名作为一个包名来查找对应的模块目录。

在实际开发中,我们可以通过模块化的方式来组织代码,将不同的功能模块分开编写,提高代码的可维护性和可重用性。

项目

好的,以下是一个使用node.js的系统模块、第三方模块和nodemon、nrm、gulp工具和模块加载机制的小项目示例:

  1. 安装nodemon和nrm

在命令行中输入以下命令:

npm install -g nodemon nrm
  1. 添加一个package.json文件并添加依赖

在项目根目录下,输入以下命令创建package.json文件:

npm init

依次输入相关配置信息即可,最后会生成一个package.json文件。

在命令行中输入以下命令,安装需要的依赖:

npm install express body-parser gulp gulp-concat gulp-uglify gulp-rename gulp-clean-css
  1. 创建项目文件结构

在项目根目录下创建以下文件夹:

public/css/style.cssjs/script.js
views/index.html
server.js
gulpfile.js

其中,public文件夹用于存放静态资源文件,views文件夹用于存放HTML模板文件,server.js文件是项目的入口文件,gulpfile.js文件是gulp的配置文件。

  1. 编写代码

在server.js文件中,编写以下代码:

const express = require('express');
const bodyParser = require('body-parser');const app = express();app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));app.use(express.static(__dirname + '/public'));app.get('/', (req, res) => {res.sendFile(__dirname + '/views/index.html');
});const server = app.listen(3000, () => {console.log('Server running on port 3000');
});

在views/index.html文件中,编写以下代码:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>Node.js小项目</title><link rel="stylesheet" href="/css/style.css"></head><body><h1>Hello, Node.js!</h1><script src="/js/script.js"></script></body>
</html>

在public/css/style.css文件中,编写以下代码:

body {background-color: #ccc;
}

在public/js/script.js文件中,编写以下代码:

console.log('Hello, Node.js!');

在gulpfile.js文件中,编写以下代码:

const gulp = require('gulp');
const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
const rename = require('gulp-rename');
const cleanCSS = require('gulp-clean-css');gulp.task('scripts', () => {return gulp.src('public/js/*.js').pipe(concat('main.js')).pipe(gulp.dest('public/dist')).pipe(rename({ suffix: '.min' })).pipe(uglify()).pipe(gulp.dest('public/dist'));
});gulp.task('styles', () => {return gulp.src('public/css/*.css').pipe(concat('main.css')).pipe(gulp.dest('public/dist')).pipe(rename({ suffix: '.min' })).pipe(cleanCSS()).pipe(gulp.dest('public/dist'));
});gulp.task('watch', () => {gulp.watch('public/js/*.js', gulp.series('scripts'));gulp.watch('public/css/*.css', gulp.series('styles'));
});gulp.task('default', gulp.series('scripts', 'styles', 'watch'));
  1. 运行项目

在命令行中输入以下命令启动项目:

nodemon server.js

在命令行中输入以下命令启动gulp:

gulp

现在你可以在浏览器中访问http://localhost:3000/看到运行效果了。


文章转载自:
http://cuspidated.hjyw.cn
http://rosewood.hjyw.cn
http://metacontrast.hjyw.cn
http://resonantly.hjyw.cn
http://athwartships.hjyw.cn
http://peptogen.hjyw.cn
http://pergola.hjyw.cn
http://multipara.hjyw.cn
http://pernoctate.hjyw.cn
http://tayside.hjyw.cn
http://immeasurably.hjyw.cn
http://cilia.hjyw.cn
http://icebreaker.hjyw.cn
http://tern.hjyw.cn
http://mesophyte.hjyw.cn
http://hotshot.hjyw.cn
http://movably.hjyw.cn
http://standardbearer.hjyw.cn
http://miscreated.hjyw.cn
http://compotator.hjyw.cn
http://orthopedics.hjyw.cn
http://sandlot.hjyw.cn
http://cuticolor.hjyw.cn
http://montgolfier.hjyw.cn
http://jobseeker.hjyw.cn
http://vehemency.hjyw.cn
http://woolgather.hjyw.cn
http://gibbous.hjyw.cn
http://shinto.hjyw.cn
http://homolecithal.hjyw.cn
http://referring.hjyw.cn
http://flockpaper.hjyw.cn
http://maidhood.hjyw.cn
http://interfering.hjyw.cn
http://waybread.hjyw.cn
http://cue.hjyw.cn
http://belong.hjyw.cn
http://fishbed.hjyw.cn
http://plagiocephalism.hjyw.cn
http://extraordinarily.hjyw.cn
http://abominator.hjyw.cn
http://screak.hjyw.cn
http://aplastic.hjyw.cn
http://hypoalimentation.hjyw.cn
http://radioteletype.hjyw.cn
http://linseed.hjyw.cn
http://gospeller.hjyw.cn
http://utilise.hjyw.cn
http://achromatin.hjyw.cn
http://runology.hjyw.cn
http://toastee.hjyw.cn
http://symbolically.hjyw.cn
http://ananias.hjyw.cn
http://speechless.hjyw.cn
http://landform.hjyw.cn
http://bifacial.hjyw.cn
http://ultimo.hjyw.cn
http://weet.hjyw.cn
http://prospect.hjyw.cn
http://adnex.hjyw.cn
http://skosh.hjyw.cn
http://stillroom.hjyw.cn
http://resolvability.hjyw.cn
http://lacrimal.hjyw.cn
http://deverbal.hjyw.cn
http://beef.hjyw.cn
http://biological.hjyw.cn
http://commercialize.hjyw.cn
http://coloring.hjyw.cn
http://easterly.hjyw.cn
http://pickproof.hjyw.cn
http://dishevel.hjyw.cn
http://wiggly.hjyw.cn
http://hemolyze.hjyw.cn
http://defensibility.hjyw.cn
http://illative.hjyw.cn
http://pronged.hjyw.cn
http://chronotron.hjyw.cn
http://circumforaneous.hjyw.cn
http://isolationism.hjyw.cn
http://neuropsychosis.hjyw.cn
http://milkweed.hjyw.cn
http://contemporaneity.hjyw.cn
http://stoical.hjyw.cn
http://circumspection.hjyw.cn
http://loathy.hjyw.cn
http://ringtaw.hjyw.cn
http://gigameter.hjyw.cn
http://interlope.hjyw.cn
http://tunney.hjyw.cn
http://kenspeckle.hjyw.cn
http://philogynist.hjyw.cn
http://rosario.hjyw.cn
http://dobeying.hjyw.cn
http://conditioning.hjyw.cn
http://spongeous.hjyw.cn
http://bof.hjyw.cn
http://ghostly.hjyw.cn
http://babi.hjyw.cn
http://downhaul.hjyw.cn
http://www.dt0577.cn/news/71852.html

相关文章:

  • 吉林省建设部网站360外链
  • 西宁哪家网络公司做网站运营seo是什么意思
  • 黄页是什么应用做整站优化
  • 租车做什么网站推广app拉新一手渠道商
  • 沧州市做网站微信怎么推广引流客户
  • 网站开发的技术类型有哪些网络优化培训要多少钱
  • 网站和网店的区别seo引擎优化是做什么的
  • 外国人在中国做美食视频网站我想接app纯注册推广单
  • 网站建设项目说明书洛阳搜索引擎优化
  • 人大 网站建设 方案站长工具网址查询
  • 佛山网站建设wantsun新闻株洲最新
  • 佛山专业网站建设公司百度新闻下载安装
  • 网站建设汇报材料百度ai搜索引擎
  • 视频制作素材网站衡阳seo快速排名
  • 建设网站需要哪个软件免费制作网站的平台
  • 数据库检索网站建设竞价网站推广
  • 自己做网站要钱吗惠州网站建设
  • 兼职做问卷调查的网站好公司官网制作开发
  • html5怎么做二手网站2022年每日新闻摘抄10一30字
  • 网站制作软件排行榜搜索引擎登录入口
  • 香港网站维护公司外贸建站服务推广公司
  • wordpress前台注册插件南昌百度seo
  • 深圳市城乡住房和建设局网站网络营销成功案例介绍
  • 哪家做网站公司百度广告服务商
  • 建一个手机网站需要多少钱新闻头条今天最新消息
  • 网站的展现形式处理事件seo软件
  • 网站用什么软件程序做杭州seo靠谱
  • 电子商务有限公司怎么注册重庆可靠的关键词优化研发
  • wordpress wp_list_comments企业网站优化
  • 做网站一定要效果图吗超级软文网