企业网站管理,wordpress 远程设置方法,免费响应式模板网站,网站开发补全Node.js系统模块 续上一篇文章第三章认识Node.js模块化开发-CSDN博客#xff0c;这次继续来认识和总结以下node的常用模块开发 Node.js系统模块是指Node.js自带的一些模块#xff0c;这些模块可以直接在Node.js中使用#xff0c;无需安装其他包。以下是常用的Node.js系统模块…Node.js系统模块 续上一篇文章第三章认识Node.js模块化开发-CSDN博客这次继续来认识和总结以下node的常用模块开发 Node.js系统模块是指Node.js自带的一些模块这些模块可以直接在Node.js中使用无需安装其他包。以下是常用的Node.js系统模块 fs模块用于处理文件系统。 http模块用于创建HTTP服务器和客户端。 url模块用于解析URL和格式化URL。 path模块用于处理文件路径。 os模块用于获取服务器的操作系统相关信息。 process模块用于与当前进程进行交互。 events模块用于创建和处理事件。 buffer模块用于处理二进制数据。 stream模块用于处理大量数据的输入输出流。 crypto模块用于加密和解密数据。 zlib模块用于压缩和解压缩数据。 assert模块用于编写测试用例。 以上模块均可以通过 require() 函数进行引入使用。
Node.js第三方模块
Node.js第三方模块是指由其他开发者或组织编写的、不隶属于Node.js官方维护的模块这些模块通常都发布在npmNode Package Manager上可以通过npm命令进行安装和使用。 命令格式npm install 模块名称 常见的Node.js第三方模块有 Express一个流行的Web应用程序框架提供了简单和灵活的API可以快速搭建Web应用程序和API。 Socket.IO一个实时的双向通信库支持Websocket协议和轮询方式可以实现实时聊天、在线游戏等功能。 Sequelize一个ORM框架支持多种数据库可以方便地进行数据库操作。 Async用于处理异步操作的工具库提供了多种函数可以方便地处理异步流程和控制流。 Nodemailer一个邮件发送库可以方便地发送电子邮件。 Moment一个处理日期和时间的工具库提供了方便的API可以方便地进行时间处理。 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 cnpmgulp工具
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模块加载机制的实现基于以下两个原则 模块第一次加载时会被缓存以后再次加载时直接从缓存中读取不会重复执行。 模块加载的顺序是按照其被引用的顺序来执行的。
在Node.js中使用require函数来加载模块。require函数会根据传入的参数去寻找该模块并将其返回。在寻找模块的过程中Node.js会按照以下规则来匹配模块 如果参数是一个绝对路径Node.js会根据该路径直接加载对应的模块。 如果参数是一个相对路径Node.js会将其转化为绝对路径后再加载对应的模块。在转换为绝对路径时会以调用require函数的模块所在的目录作为基准路径。 如果参数是一个模块名Node.js会按照以下顺序依次尝试 a. 将模块名作为文件名来查找对应的模块文件比如模块名为“./hello”则会查找当前目录下的hello.js文件。 b. 将模块名作为目录名来查找对应的模块目录比如模块名为“./foo”则会查找当前目录下的foo目录。 c. 在上一步找到的目录中查找package.json文件读取其中的main字段然后根据该字段所指定的文件名来加载对应的模块文件。 d. 如果上述步骤都失败了就会将模块名作为一个包名来查找对应的模块目录。
在实际开发中我们可以通过模块化的方式来组织代码将不同的功能模块分开编写提高代码的可维护性和可重用性。
项目
好的以下是一个使用node.js的系统模块、第三方模块和nodemon、nrm、gulp工具和模块加载机制的小项目示例
安装nodemon和nrm
在命令行中输入以下命令
npm install -g nodemon nrm添加一个package.json文件并添加依赖
在项目根目录下输入以下命令创建package.json文件
npm init依次输入相关配置信息即可最后会生成一个package.json文件。
在命令行中输入以下命令安装需要的依赖
npm install express body-parser gulp gulp-concat gulp-uglify gulp-rename gulp-clean-css创建项目文件结构
在项目根目录下创建以下文件夹
public/css/style.cssjs/script.js
views/index.html
server.js
gulpfile.js其中public文件夹用于存放静态资源文件views文件夹用于存放HTML模板文件server.js文件是项目的入口文件gulpfile.js文件是gulp的配置文件。
编写代码
在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
htmlheadmeta charsetUTF-8titleNode.js小项目/titlelink relstylesheet href/css/style.css/headbodyh1Hello, Node.js!/h1script 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));运行项目
在命令行中输入以下命令启动项目
nodemon server.js在命令行中输入以下命令启动gulp
gulp现在你可以在浏览器中访问http://localhost:3000/看到运行效果了。