NodeJs学习笔记1
在Node.js中,模块是代码组织的基本单位,它允许我们将功能封装起来,便于重用和管理。本篇学习笔记主要涵盖了三个核心知识点:模块封装、模块调用以及如何执行Node.js文件。 我们来看看如何封装一个模块。在Node.js中,我们可以创建一个JavaScript文件,比如`test.js`,并在其中定义一个函数。例如: ```javascript // test.js function test() { console.log("1"); } exports.testBegin = test; ``` 在这个例子中,`test()`函数是我们封装的功能,通过`exports.testBegin = test;`这一行代码,我们将`test()`函数赋值给`exports`对象的`testBegin`属性。这样,在其他模块中,可以通过`require()`函数来引用这个模块,并调用`testBegin`这个方法。 接下来,我们了解如何调用一个已封装的模块。假设我们有另一个文件`a.js`,需要使用`test.js`中的功能: ```javascript // a.js var test = require("./test"); // 引入test.js模块 test.testBegin(); // 调用test.js中exports后的变量名为testBegin的方法 ``` 在这段代码中,`require("./test")`用于导入`test.js`模块,`test.testBegin()`则是调用`test.js`中定义的`testBegin`方法。 执行Node.js文件的方法与执行普通文件并无二致。比如,要执行`a.js`,只需在命令行中定位到文件所在目录,然后输入`node a.js`即可。 第三个知识点是如何获取访问者想要访问的路径。在Node.js的HTTP服务器中,我们可以监听用户的请求。需要引入`http`模块: ```javascript var http = require("http"); ``` 接着,创建一个服务器并监听指定端口,例如8888: ```javascript http.createServer(onRequest).listen(8888); ``` `onRequest`是一个回调函数,处理接收到的请求: ```javascript function onRequest(request, response) { console.log(request.url); } ``` 在`request`对象中,`url`属性包含了用户请求的完整URL。为了提取路径部分,我们需要使用`url`模块: ```javascript var url = require("url"); ``` 解析URL并获取`pathname`: ```javascript var pathname = url.parse(request.url).pathname; ``` 以上步骤结合在一起,完整的代码可能如下所示: ```javascript var http = require("http"); var url = require("url"); function onRequest(request, response) { var pathname = url.parse(request.url).pathname; console.log("Request for " + pathname + " received."); response.writeHead(200, {"Content-type": "text/plain"}); response.write("Hello world!"); response.end(); } http.createServer(onRequest).listen(80); console.log("Server has started!"); ``` 运行这段代码后,服务器将启动并监听80端口。当用户访问指定URL时,服务器会打印出访问的路径。 总结来说,Node.js的模块系统提供了良好的代码组织和复用机制,通过`exports`和`require`可以实现模块间的通信。同时,利用`http`和`url`模块,我们可以构建简单的HTTP服务器,获取并处理用户的请求。理解这些基础概念对于Node.js的学习至关重要。
剩余194页未读,继续阅读
- 粉丝: 27
- 资源: 305
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip
评论0