网络上很多文章都已经描述过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都带表什么呢!
这里写图片描述