nodejs的一些理解

来源:互联网 发布:罗马方阵vs秦军 知乎 编辑:程序博客网 时间:2024/06/05 15:59

网络上很多文章都已经描述过nodejs了,我也就不多说了,最近一直在研究javascript 由浅入深的也开始研究nodejs了。现在就我研究的成果写成文章备用(主要是怕忘了)
1 首先是nodjs是模块化管理。用模块定义各种功能。那么nodejs是如何让这些模块运行的呢。研究了好几天,才发现问题的由来。用npm安装了一些先有模块。却不知道应该怎么用。网上搜了大堆信息也没弄明白个所以然。亲自动手利用代码来学习吧。
在命令行里直接用npm install -g xxxx模块 可以去npm官方网站下载并安装(或更新)模块 如果使用-g的话说明是全局安装(环境变量里有path=C:\Users\Administrator\AppData\Roaming\npm)也就是把模块下载后解压缩到C:\Users\Administrator\AppData\Roaming\npm里面,发现这个文件夹里竟然有.cmd后缀的批处理文件。这下清楚了。我们在windows里直接运行nodejs程序的时候为什么不用进入node环境就能运行原因在这。批处理文件替我们做了这些工作。我怀疑-g的主要功用就是生成一个批处理文件,比如我用npm install -g node-inspector
/////////////////////////////////////////

@IF EXIST "%~dp0\node.exe" (  "%~dp0\node.exe"  "%~dp0\node_modules\node-inspector\bin\inspector.js" %*) ELSE (  @SETLOCAL  @SET PATHEXT=%PATHEXT:;.JS;=;%  node  "%~dp0\node_modules\node-inspector\bin\inspector.js" %*)

////////////////////////////////////////////
方法1.
我们可以直接双击这个批处理文件运行js程序。(运行批处理)
方法2.
也可以在任何地方使用dos命令窗口输入node-inspector运行程序(运行批处理)
方法3.
其实我们大可直接在C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-inspector\bin文件夹找到inspector.js然后 shift+右键 此处打开命令窗口(dos),输入node inspector.js 。(通过node 运行,官方方法)
方法4.
第四种方法特殊可以利用快捷方式来运行
先创建一个node.exe的快捷方式,然后在快捷方式选项卡中的目标里添加参数
比如“D:\Program Files (x86)\nodejs\node.exe” C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-inspector\bin\inspector
这里C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-inspector\bin\inspector就是参数
点击快捷方式直接运行即可

如果要调试程序我们可以打开inspector 然后呢写一个程序 比如helloworld.js。我放到了node.exe同名目录下
/////////////////////////////

var http = require('http'); var e=exports; exports.test=5;var r=require;var m=module;var n=__filename,d=__dirname;http.createServer(function(req, res) {      res.writeHead(200, {          'Content-Type': 'text/plain'      });      res.end('Hello World\n'+e+r+m+n+d);  }).listen(1337, "127.0.0.1");  console.log('Server running at http://127.0.0.1:1337/');  

//////////////////////////////////////////
利用创建的快捷方式“D:\Program Files (x86)\nodejs\node.exe” C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-inspector\bin\inspector
和快捷方式“D:\Program Files (x86)\nodejs\node.exe” –debug helloworld.js
来启动程序
现在我们打开chrome浏览器http://127.0.0.1:8080/debug?port=5858来调试程序吧。
////////////////////////////////////

(function (exports, require, module, __filename, __dirname) { var http = require('http'); var e=exports; exports.test=5;var r=require;var m=module;var n=__filename,d=__dirname;http.createServer(function(req, res) {      res.writeHead(200, {          'Content-Type': 'text/plain'      });      res.end('Hello World\n'+e+r+m+n+d);  }).listen(1337, "127.0.0.1");  console.log('Server running at http://127.0.0.1:1337/');  });

/////////////////////////////////////////
我们写的程序竟然变成了这样。原来我们的js程序也被当做module了。好 那么exports, require, module, __filename, __dirname都带表什么呢!

这里写图片描述

0 0
原创粉丝点击